log4j 每天生成日志文件 错误文件

来源:互联网 发布:intouch9.5软件 编辑:程序博客网 时间:2024/05/16 17:54

最近跟踪老项目,发现用log4j记录日志文件时,info文件能每天自动生成,但是错误文件要么只有当天的错误文件,要么错误文件是以追加的方式生成的,导致错误文件非常大。但在linux操作系统时,按照错误的配置方法每天能正常生成日志文件和错误文件。研究了一下项目中配置的log4j(版本:log4j-1.2.15),发现每天生成info文件时正常,生成error文件时,打印“log4j:ERROR Failed to rename”。最后发现是log4j配置有问题,而不是网上其它网友提供的修改DailyRollingFileAppender,增加copy方法,替换原来的rename方法。以下配置可以每天生成日志文件和一个错误文件,配置如下:

# Configure logging for testing: optionally with log file
log4j.rootLogger=INFO,stdout,logfile,errorlog

log4j.logger.com.ibatis=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=INFO
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=INFO
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile.Append=true
log4j.appender.logfile.File=../logs/sh10000_vip_zj 

log4j.appender.logfile.DatePattern='.'yyyy-MM-dd'.log'

#错误的配置

#log4j.appender.logfile.File=../logs/sh10000_vip_zj.log

#log4j.appender.logfile.DatePattern='.'yyyy-MM-dd'



log4j.appender.errorlog=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.errorlog.layout=org.apache.log4j.PatternLayout  
log4j.appender.errorlog.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.errorlog.append=true  
log4j.appender.errorlog.Threshold = ERROR   
log4j.appender.errorlog.File=../logs/sh10000_vip_zj_error

log4j.appender.errorlog.datePattern='.'yyyy-MM-dd'.log'

#错误的配置

#log4j.appender.logfile.File=../logs/sh10000_vip_zj_error.log

#log4j.appender.logfile.DatePattern='.'yyyy-MM-dd'

以上错误的配置会在第二天命名前一天错误文件时发生:ERROR Failed to rename错误。原因是找不到源文件,大家可以跟踪一下DailyRollingFileAppender中rollOver方法。

附件为正常生成日志文件截图。

1 0