Log4j DailRollingFileAppender创建备份的时间不超过1天

Log4j DailRollingFileAppender创建备份的时间不超过1天,log4j,Log4j,我的日志配置如下,但我只能看到创建了一个备份文件,而所有其他备份都被关闭/删除 log4j.appender.application=org.apache.log4j.DailyRollingFileAppender log4j.appender.application.File=${log.root.path}/test.log log4j.appender.application.DatePattern='.'yyyy-MM-dd log4j.appender.application.lay

我的日志配置如下,但我只能看到创建了一个备份文件,而所有其他备份都被关闭/删除

log4j.appender.application=org.apache.log4j.DailyRollingFileAppender
log4j.appender.application.File=${log.root.path}/test.log
log4j.appender.application.DatePattern='.'yyyy-MM-dd
log4j.appender.application.layout=org.apache.log4j.PatternLayout
log4j.appender.application.layout.ConversionPattern=%d{dd MMM 
HH\:mm\:ss\:SSS} [%t] %-5p [%c\:%M\:%L]  srcIp=%X{srcIp} - 
remoteHost=%X{remoteHost} -port=%X{port} - activityType=%X{activitytype} - 
activityStatus=%X{activitystatus} -applicationUser=%X{applicationUser} - 
APITXNID=%X{apiTxnId} -CustomerRefNum=%X{CustomerRefNum} -%m%n%n

您的配置看起来不错,您可以尝试做以下几件事:

  • 尝试将
    log4j.appender.application.DatePattern
    .'yyyy-MM-dd
    替换为
    .'yyyy-MM-dd-HH-MM
    ,并查看是否每分钟都会创建文件。如果它工作正常,则可能会有一些外部清理脚本删除旧日志

  • -Dlog4jdebug.true
    添加到VM选项中,以验证所使用的log4j conf文件是否有效

  • 也考虑使用

    已观察到DailRollingFileAppender出现同步问题和数据丢失。log4j extras companion包括新部署应考虑的备选方案,这些方案在org.apache.log4j.rolling.RollingFileAppender的文档中进行了讨论

    通过将log4j依赖项替换为,您可以获得与上述配置相同的效果,它实现了log4j 1.2.x,但具有额外的功能,例如
    org.apache.log4j.rolling.RollingFileAppender
    TimeBasedRollingPolicy

    然后在
    log4j.properties中替换

    log4j.appender.application=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.application.File=${log.root.path}/test.log
    log4j.appender.application.DatePattern='.'yyyy-MM-dd
    

    log4j.appender.application=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.application.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
    log4j.appender.application.rollingPolicy.FileNamePattern=${log.root.path}/test.log.%d{yyyy-MM-dd-HH-mm}
    log4j.appender.application.File=${log.root.path}/test.log