log4j没有登录到文件

时间:2014-04-17 09:01:52

标签: java logging log4j

log4j.rootLogger=INFO
log4j.logger.com.app.yum.package.WatchDog=INFO,logfile

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.file=watchdog/watchdog.log
log4j.appender.logfile.maxFileSize=1024KB
log4j.appender.logfile.maxBackupIndex=5
log4j.appender.logfile.append=true
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d | %-5p | %m | %c | %t%n

我在log4j属性文件中使用上面的配置。我可以看到已创建一个新文件但其中没有日志。 相反,我在控制台上看到日志。我想要做的是将特定类的所有日志记录在文件watchdog.log中。

以下是我的记录器初始化

private static final Logger logger = LoggerFactory.getLogger(WatchDog.class);

我错过了什么吗?

1 个答案:

答案 0 :(得分:-1)

您需要告诉log4j登录文件,

首先添加:

log4j.rootLogger=INFO, FILE

然后您需要指定文件Appender,如:

#settings for FILE: output to file using standard TTCC pattern
#this option backs up the file daily with a date stamp
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd

#this option backs up the file after is reaches a specified size
#log4j.appender.FILE=org.apache.log4j.RollingFileAppender
#log4j.appender.FILE.MaxFileSize=1KB
#log4j.appender.FILE.MaxBackupIndex=3

#optionally change the filepath to the log file
log4j.appender.FILE.File=D:/Reliances/reliance90e_NOVO/logs/reliance.log
log4j.appender.FILE.layout=org.apache.log4j.TTCCLayout
log4j.appender.FILE.layout.ContextPrinting=true
log4j.appender.FILE.layout.DateFormat=ISO8601
log4j.appender.FILE.Threshold=DEBUG

并且可以对记录器进行初始化:

//From org.apache.log4j.Logger
Logger logger = Logger.getLogger(obj.getClass().getName());

注意:该值是一个示例,我还想向您展示File Appender中的不同选项,此配置也应添加到您的其他配置中。