您好我正在尝试使用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
答案 0 :(得分:2)
DailyRollingFileAppender 表示归档日志文件
例如,今天是2014.11.07,当您第一次运行应用程序时,您的日志文件名称将为app.log
。明天,您再次运行应用程序,它的日志文件也名为app.log
,但昨天的日志文件已更改,可能像app.log.2014.11.07
< / p>
试试这个:
F:/temp/
或
更改此
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
备注的
答案 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