zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    关于Certificate、Provisioning Profile
    苹果开发者账号类型
    在 iTunes Connect 中,无法找到“My Apps”选项
    iOS 开发,相关网址
    dart 使用
    initState 必须调用 super.initState(); 否则报错
    TabBar 设置可滚动:isScrollable: true
    flutter 从创建到渲染的大体流程
    获取对象State的方法
    beforeRouteEnter 与 beforeRouteUpdate(watch $route 对象) 的区别
  • 原文地址:https://www.cnblogs.com/steveshao/p/12156713.html
Copyright © 2011-2022 走看看