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

时间:2014-11-07 13:52:50

标签: java logging log4j log4j2 log4

您好我正在尝试使用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

3 个答案:

答案 0 :(得分:2)

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

试试这个:

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

  3. 更改此

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

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

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

答案 1 :(得分:2)

如果您使用的是log4j 1.x,我们强烈建议您使用org.apache.log4j.rolling.RollingFileAppender 1 而不是org.apache.log4j.DailyRollingFileAppender(可能)丢失消息,Bug 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)。

答案 2 :(得分:0)

您可以使用此配置:

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