Log4j日志重复打印问题的解决方案
在Lab4中配置Log4j日志的时候,发现日志重复打印的问题。网上查了很多资料,发现介绍Log4j配置的文章数量不少,但提提供解决这个问题的方法却很少
首先看一下我的日志的配置:
log4j.rootLogger = debug,D,E,infolog4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs.txt
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%nlog4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs.txt
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n log4j.appender.info=org.apache.log4j.RollingFileAppender
log4j.appender.info.Threshold=INFO
log4j.appender.info.File=logs.txt
log4j.appender.info.MaxFileSize=200MB
log4j.appender.info.MaxBackupIndex=5
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
上面这个log4j.properties配置文件是个非常常规的文件,这是按照网上教程的模板配置的,应该没有什么问题,但是查看日志输出文件的时候,却发现同一条日志重复输出了两遍。

在网上查了好多解决方案,终于找到一种简单的解决方案。
使用filter进行日志过滤
这个其实是Log4j自带的方案,也是推荐方案,不知道为什么网上的资料却很少提到这点。
把log4j.properties配置文件修改成如下:
log4j.rootLogger = debug,D,E,infolog4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs.txt
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.D.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.D.filter.infoFilter.LevelMin=DEBUG
log4j.appender.D.filter.infoFilter.LevelMax=DEBUGlog4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs.txt
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.E.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.E.filter.infoFilter.LevelMin=ERROR
log4j.appender.E.filter.infoFilter.LevelMax=ERRORlog4j.appender.info=org.apache.log4j.RollingFileAppender
log4j.appender.info.Threshold=INFO
log4j.appender.info.File=logs.txt
log4j.appender.info.MaxFileSize=200MB
log4j.appender.info.MaxBackupIndex=5
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.info.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.info.filter.infoFilter.LevelMin=INFO
log4j.appender.info.filter.infoFilter.LevelMax=INFO
通过以上配置模板即可解决各级别日志重复打印的问题。
我们再来看一下修改后的日志输出文件:

修改之后重复打印的问题就得到解决了。
参考:blog.csdn.net/weixin_34096182/article/details
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
