一个关于log4j的小问题.....

幻想雨季 2005-07-14 12:45:55
小弟第一次用log4j日志器,在struts项目里想打出日志内容到一个指定文件,配置如下:

log4j.rootLogger=INFO,console,file

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.txt

log4j.appender.console.layout=org.apache.log4j.SimpleLayout

log4j.appender.file.layout=org.apache.log4j.PatternLayout

logrj.appender.file.layout.ConversionPattern=%t %p - %m%n

1 请问生成的日志文件在什么地方?(书上说在WEB-INF目录下,可是找不到)
2 如何指定日志生成目录?
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jFresH_MaN 2005-07-14
  • 打赏
  • 举报
回复
log4j.appender.file.File=log.txt

你这样的定义已经把你的日志文件输出到%TOMCAT_HOME%/bin目录里面了
建议直接使用绝对路径
log4j.appender.file.File=c:\\log.txt
caven 2005-07-14
  • 打赏
  • 举报
回复
给你一个例子 ,在与elipse平级建立applog,在applog下建立logconfig,logdata,在logconfig下建立log4j.properties

log4j.properties
#log4j.rootLogger=[priority],appenderName,appenderName,...
#其中,priority是日志级别,可选值包括OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL
#在这里定义了INFO级别,则应用程序中所有DEBUG、TRACE、ALL级别的日志消息将不被打印出来
#appenderName指定Appender组件,用户可以同时指定多个Appender组件

#Log4j提供的Appender有以下几种:
#org.apache.log4j.ConsoleAppender:控制台
#org.apache.log4j.FileAppender:文件
#org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件
#org.apache.log4j.RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件


#Log4j提供的Layout有以下几种
# org.apache.log4j.HTMLLayout (以HTML表格形式布局)
# org.apache.log4j.PatternLayout (可以灵活地指定布局模式)
# org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
# org.apache.log4j.TTCCLayout (包含日志产生的时间、线程和类别等信息)


#ConversionPattern格式
# %d --产生日志的时间
# %r --自程序开始后消耗的毫秒数
# %t --表示日志记录请求生成的线程
# %p --表示日志语句的优先级别
# %r --与日志请求相关的类别名称
# %c --日志消息所在的类名
# %m%n--表示日志消息的内容

#设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中
#log4j.rootLogger=DEBUG,stdout

#设置为debug,表示只能打印出debug级别的信息,如果不想打印,就把DEBUG级别调高
#printDebugInfo 关联到程序
log4j.logger.printDebugInfo=DEBUG,D,C
#该行可屏蔽终端输出和终止debug输出到文件(记住要屏蔽记录输出到终端的全部三行)
#log4j.logger.printDebugInfo=INFO,D,C

#设置成info,表示只能打印出info级别的信息,如果不想打印,就把INFO级别调高
log4j.logger.printOperateInfo=INFO,I
#把该行屏蔽,即可终止记录用户所有操作
#log4j.logger.printOperateInfo=INFO,I

#设置成error,表示只能打印出error级别的信息,如果不想打印,就把ERROR级别调高
log4j.logger.printErrorInfo =ERROR,E
#把该行屏蔽,即可终止记录用户所有操作
#log4j.logger.printErrorInfo =INFO,E

#E(Error) 记录所有错误
#I(Info) 记录用户所有操作
#D(Debug) 记录调试信息

#记录输出到终端
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n

#===========记录调试信息========================================
#记录输出到文件
log4j.appender.D=org.apache.log4j.RollingFileAppender
log4j.appender.D.MaxFileSize=100KB
log4j.appender.D.MaxBackupIndex=1
#如果直接调用文件的缺省目录是context目录;如果在tomcat中调用缺省目录是context的上级目录(如eclipse)或者tomcat\bin目录
log4j.appender.D.File=..\\applog\\logdata\\debug_log
log4j.appender.D.Append=true
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n


#===========记录用户所有操作(每天产生一个日志文件)=======================
log4j.appender.I=org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File=..\\applog\\logdata\\info_log
log4j.appender.I.Append=true
#log4j.appender.I.Threshold=info
log4j.appender.I.DatePattern = '.'yyyy-MM-dd
log4j.appender.I.layout=org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n


#===========记录所有错误(文件大小到达指定尺寸的时候产生一个新的文件)========
log4j.appender.E=org.apache.log4j.RollingFileAppender
#日志文件的大小
log4j.appender.E.MaxFileSize=100KB
# 保存一个备份文件
log4j.appender.E.MaxBackupIndex=1
#日志文件的名称
log4j.appender.E.File=..\\applog\\logdata\\error_log
log4j.appender.E.Append=true
#log4j.appender.E.Threshold=error
#设置输出格式
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n

Log.java
/*
* Created on 2005-7-6
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.wellhead.netmanage.util;

import org.apache.log4j.*;
import java.util.*;

/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Log {
private static Logger printDebugLog=Logger.getLogger("printDebugInfo");
private static Logger printOperateLog=Logger.getLogger("printOperateInfo");
private static Logger printErrorLog=Logger.getLogger("printErrorInfo");

static {

String configureFile = System.getProperties().getProperty("user.dir")+"\\..\\applog\\logconfig\\"+"log4j.properties" ;
PropertyConfigurator.configure(configureFile);

}
public static void printDebug(String message)
{
printDebugLog.debug(message);
}

public static void printInfo(String message)
{
printOperateLog.info(message);
}

public static void printError(String message)
{

printErrorLog.debug(message);
}

public static void main(String[] args) {

Log.printDebug("aaaaaaaaa");

}
}


幻想雨季 2005-07-14
  • 打赏
  • 举报
回复
%TOMCAT_HOME%/bin下也没有log.txt文件

更改路径后
log4j.appender.file.File=c:\\log.txt
依然找不到文件

是不是生成文件时有问题?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧