log4j怎样能生成日期分割的文件
按网上的资料配置的log4j 不能生成日期文件
用log4j生成日志,担心天长日久如果生成到一个文件里面有很大,考虑每天都生成当天的日志文件,文件名有当天的日期。
解决方法很简单:
在src目录下放置log4j.properties,内容如下
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE
log4j.rootCategory=INFO,CONSOLE, LOGFILE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c - %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.File=/opt/applog/ets/log
log4j.appender.LOGFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
但是在测试的时候怎么也出不来想要的类似“log.2012-07-24”这样的日志文件,老是只有一个"log"的文件,开始以为配置不对,反复折腾一下午也没配出来,遂放弃了。直到今天早上,我偶然间查了下资料,发现24日(今天)生成的日志是以 ”log“的形式存储的,当到25日(明天)的时候是把24日生成的log_文件加入25日的日期(log.20120724)保存起来,然后在创建一个26日的log_文件,依次类推。 所以在测试的时候需要修改系统时间才能看到生成的日志.
后记:解决问题 经常会进入死循环,做钻牛角尖的傻事,这个时候不妨放一放。换个时间换个角度去再去看的时候,你会发现问题迎刃而解,可能这就是传说中的看球的永远比踢球的清楚怎样踢合理。