将日期添加到log4j中的文件名?

时间:2014-08-28 12:31:09

标签: java log4j

任何人都可以告诉我我的代码有什么问题!无法将日期戳附加到文件名

# Set root logger level to DEBUG .
log4j.rootLogger=DEBUG,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${LOG4J_ROOT}/Employer/EmployerDocUpload.log
#log4j.appender.R.DatePattern='.'yyyy-MM-dd
##log4j.appender.R.File=C:/log/AccountInfo.log
#log4j.appender.R.MaxFileSize=50000KB
## Keep one backup file
#log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%p] %d %c %M - %m%n 

log4j.logger.com.carefirst.portal=DEBUG,INFO,ERROR

我无法对xml进行任何更改!

1 个答案:

答案 0 :(得分:0)

潜在问题

org.apache.log4j.DailyRollingFileAppender的问题是您可能丢失数据(仅在重命名文件时发生)。通过此实现,例如,根据您的日期模式,在午夜,当系统日期中的某个月更改时,将发生文件重命名。您可以尝试更改系统日期中的日期。

解决方案

如果你想使用日期模式,建议log4j使用Apache Extras for Apache log4j 1 你需要使用类org.apache.log4j.rolling.RollingFileAppender和{ {3}}。例如: 2

log4j.rootLogger=DEBUG, R
log4j.appender.R=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.R.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.R.rollingPolicy.fileNamePattern=logs/file%d{yyyy-MM-dd}.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.conversionPattern=[%p] %d %c %M - %m%n
log4j.logger.com.carefirst.portal=WARN

备注

  1. 在这种情况下,您需要添加相应的jar(org.apache.log4j.rolling.TimeBasedRollingPolicy)。
  2. 使用该配置,结果名称将为logs/file2014-08-28.log