2013-06-26 66 views
1

我正在研究一個Java Spring項目,並且我想從每個包中只記錄WAR,並且只從我的包中記錄INFO。爲什麼我在Log4J中獲得雙倍輸出?

我不知道爲什麼Log4J給我的雙行輸出我的包。

有人能告訴我爲什麼

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/> 
     </layout> 
    </appender> 


    <logger name="com.xxxxx.mongodb"> 
     <level value="INFO"/> 
     <appender-ref ref="console" /> 
    </logger> 

    <root> 
     <priority value="WARN"/> 
     <appender-ref ref="console"/> 
    </root> 
</log4j:configuration> 

回答

0

添加

additivity="false" 

屬性什麼是生產各種雙頭輸出的記錄。

2

因爲你的記錄器繼承根記錄的追加程序。

docs爲log4j的狀態:

記錄℃的日誌語句的輸出將所有附加目的地 C和它的祖先。這是術語「appender 可加性」的含義。

然而,如果記錄器C的祖先,稱P,具有可加性標誌 設置爲false,那麼C的輸出將被定向到 C及其祖先高達和包括P個而不是追加程序中的所有追加程序P.

的祖先的任何 默認情況下,記錄儀的可加性標記設置爲true。

相關問題