Log4j日志重复问题

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>
posted @ 2020-01-06 15:49  江云风  阅读(800)  评论(0编辑  收藏  举报
// 点击-心形效果