1、日志重复问题:
log4j添加过滤:
比如error级别:
log4j.appender.error.filter.errorFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.error.filter.errorFilter.LevelMin=ERROR
log4j.appender.error.filter.errorFilter.LevelMax=ERROR
全代码演示
log4j.rootLogger=DEBUG,info,stdout,warn,error
#stdout#
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} -%-4r [%t] %-5p %x - %m%n
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Encoding=utf8
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File=E:/offline-sheet/logs/jasper_print_error.log
log4j.appender.error.DatePattern=yyyy-MM-dd'.log'
log4j.appender.error.Threshold=error
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[eMC] %d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L : %m%n
log4j.appender.error.filter.errorFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.error.filter.errorFilter.LevelMin=ERROR
log4j.appender.error.filter.errorFilter.LevelMax=ERROR
#info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File=E:/offline-sheet/logs/jasper_print_info.log
log4j.appender.info.DatePattern=yyyy-MM-dd'.log'
log4j.appender.info.Threshold=info
log4j.appender.info.layout.ConversionPattern=[eMC] %d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L : %m%n
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.info.filter.infoFilter.LevelMin=INFO
log4j.appender.info.filter.infoFilter.LevelMax=INFO
#warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.File=E:/offline-sheet/logs/jasper_print_warn.log
log4j.appender.warn.DatePattern=yyyy-MM-dd'.log'
log4j.appender.warn.Threshold=warn
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=[eMC] %d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L : %m%n
log4j.appender.warn.filter.warnFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.warn.filter.warnFilter.LevelMin=WARN
log4j.appender.warn.filter.warnFilter.LevelMax=WARN
2、log4j版本问题:
1.2.11版本测试时,及时添加了上面的过滤器,也会出现日志重复记录,即info级别记录warn和error,warn记录error等。
1.2.17版本测试时,正常,没有日志重复记录问题。
(猜测:11版本时并没有过滤方法,有空看完源码再来补充)
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>