zoukankan      html  css  js  c++  java
  • log4j重复打印的解决方法

    log4j的logger(旧版本称logger)是层次结构的,子logger会继承父logger的属性,appender也是可继承的属性,这常常 容易导致配置错误而引起的log4j输出重复的log信息。如果在在父子logger中引用了相同的appender时,例子:
        <logger name="com.erry.model">
            <level value="DEBUG"/>
            <appender-ref ref="CONSOLE"/>
        </logger>
        <logger name="com.erry.service">
            <level value="DEBUG"/>
            <appender-ref ref="CONSOLE"/>
        </logger>
        <root>
            <level value="WARN"/>
            <appender-ref ref="CONSOLE"/>
        </root>

    由于子logger(com.erry.model和com.erry.service)继承了父logger(ROOT)的appender,加上其本 身引用的appender总共会在2个appender上输出消息,由于这两个appender实际上是同一个appender,所以结果会是相同的消息 被重复输出。解决这个问题很简单,只要注意不要重复引用父logger已经引用的appender即可。上述例子的正确配置如下:
        <logger name="com.erry.model">
            <level value="DEBUG"/>
        </logger>
        <logger name="com.erry.service">
            <level value="DEBUG"/>
        </logger>
        <root>
            <level value="WARN"/>
            <appender-ref ref="CONSOLE"/>
        </root>

  • 相关阅读:
    【转载】Myeclipse如何自动创建hibernate
    win7 64位mysql安装及navicat 解压版
    NuGet套件还原步骤(以vs2012为例)
    Html.DropDownListFor() 二级联动 ($.getJSON)
    ModelState验证部分属性
    asp.net mvc发送邮件
    SpringBoot的热部署
    SpringBoot 入门demo
    集群、负载均衡、微服务、分布式的概念
    SpringBoot 简介
  • 原文地址:https://www.cnblogs.com/zhouj850/p/11759587.html
Copyright © 2011-2022 走看看