日期:2014-05-17  浏览次数:20670 次

log4j 之 DailyRollingFileAppender 问题,为什么不是每天生产新的日志文件呢???
请问各位,如何是用DailyRollingFileAppender是每天生成单独的日志文件,而不是在日志有变化时才生成新的日志文件。

下面是我的配置,但是这个配置出现的问题就是,如果在第二天没有产生新日志,那么就不会生成新的日志文件。

例如 2009-6-25日日志文件为 debug.log,在2009-6-26时如果debug.log中的日志没有变化,则不会产生debug.log.2009-6-25;直到当有新的日志内容产生时才会生成debug.log.2009-6-25,这样的问题是,如果2009-6-26没有产生任何新日志,那么就得在2009-6-27或往后直到有新日志内容生成那天才会产生debug.log.2009-6-25文件。

我想让他一到新的一天就产生前一天的日志文件,不知怎么实现呢,谢谢!!!

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.File=/tmp/debug.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.Append=true
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n



------解决方案--------------------
我觉得你的需求也怪怪的,没有日志的那天干吗还要产生一个空文件啊?
我反倒觉得没有日志的就没有文件,这是优点,不是缺点。
:P
------解决方案--------------------
探讨
我的意图是想如果前一天有日志内容,就生成前一天的日志文件如:debug.log.2009-6-25。
譬如说,到2009-6-26时,若debug.log中有日志内容,则生成debug.log.2009-6-25;到2009-6-26时,若debug.log中没有任何日志内容,就不必生成debug.log.2009-6-25。