无法使用log4j DailyRollingFileAppender将日期附加到文件名

您好我试图使用log4j DailyRollingFileAppender将当前日期附加到文件名,但它无法正常工作。 我使用了如下配置。 请为此建议一个解决方案

性能

log4j.rootLogger = DEBUG, rollingAppender log4j.appender.rollingAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.rollingAppender.DatePattern='.'yyyy-MM-dd log4j.appender.rollingAppender.File=F:/temp/app.log log4j.appender.rollingAppender.layout=org.apache.log4j.PatternLayout log4j.appender.rollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n 

我期待日志文件为app2014-11-07.log,但它仍然是app.log

如果您使用的是log4j 1.x,我们强烈建议您使用org.apache.log4j.rolling.RollingFileAppender 1而不是org.apache.log4j.DailyRollingFileAppender (可能会丢失消息, 错误43374 )。

所以你appender的配置可以是:

 log4j.rootLogger = DEBUG, rollingAppender log4j.appender.rollingAppender=org.apache.log4j.rolling.RollingFileAppender log4j.appender.rollingAppender.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy log4j.appender.rollingAppender.rollingPolicy.fileNamePattern=F:/temp/app%d{yyyy-MM-dd}.log log4j.appender.rollingAppender.layout=org.apache.log4j.PatternLayout log4j.appender.rollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n 

笔记

  1. 在这种情况下,您需要添加相应的jar( apache-log4j-extras-1.2.17.jar )。

DailyRollingFileAppender表示归档日志文件。
例如,今天是2014.11.07,当您第一次运行应用程序时,您的日志文件名将是app.log 。 明天,你再次运行应用程序,它的日志文件也名为app.log但是昨天的日志文件已被更改,可能就像app.log.2014.11.07

试试这个 :

  1. 将您的系统日期更改为2014.11.08
  2. 运行你的应用程序,然后检查日志路径: F:/temp/

要么

改变这个

  log4j.appender.rollingAppender.DatePattern='.'yyyy-MM-dd 

  log4j.appender.rollingAppender.DatePattern='.'yyyy-MM-dd-HH-mm 

这意味着它将逐分钟地生成一个新的日志文件。
再次运行它。

您可以使用此配置:

 log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender #log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%d](%F:%L) - %m%n #log4j.appender.stdout.File=/usr/tomcat7/webapps/ngp/newgen.log log4j.appender.stdout.File=c:/logs/DSP.log #log4j.appender.stdout.DatePattern='.'yyyy-MM-dd log4j.appender.stdout=org.apache.log4j.RollingFileAppender log4j.appender.stdout.MaxBackupIndex=1 log4j.appender.stdout.append=false