您的位置:首页 > 其它

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

2017-02-23 14:23 218 查看
最近跟踪老项目,发现用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方法。
附件为正常生成日志文件截图。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: