我的日志配置如下,但我只能看到正在创建一个备份文件,所有其他备份都会关闭/删除。
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
答案 0 :(得分:0)
您的配置看起来很好,您可以尝试做几件事:
尝试从log4j.appender.application.DatePattern
替换'.'yyyy-MM-dd
到'.'yyyy-MM-dd-HH-mm
,看看是否每分钟都会创建一个文件。如果有效,可能会有一些外部清理脚本删除旧日志。
将-Dlog4jdebug.true
添加到VM选项以验证使用的log4j conf文件的有效性。
另请考虑使用API Documentation warning
已观察到DailyRollingFileAppender出现同步问题和数据丢失。 log4j extras随附包括应考虑用于新部署的备选方案,并在org.apache.log4j.rolling.RollingFileAppender的文档中进行了讨论。
通过将log4j依赖项替换为实现log4j 1.2.x的apache-log4j-extras,但具有额外功能,例如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