2014-03-27 55 views
8

簡單地說,當爲這樣的特定類添加Log4j配置時,製作additivity="true"additivity="false"的結果是什麼?使log4j加法等於真或假的結果是什麼?

<Logger name="com.mypage.glass.TryWindow" level="INFO" additivity="true"> 
    <AppenderRef ref="console"/> 
    <AppenderRef ref="file"/> 
</Logger> 

回答

15

默認情況下,記錄器從其祖先繼承appender。通過設置additivity="false",可以防止此行爲。

在你的榜樣,有可能是com.mypage.glasscom.mypage或者即使你沒有該屬性設置爲false將被繼承了根記錄相關的附加目的地。

+1

但是在實際的文件上會發生什麼...意思是如果我將它變爲真或假在文件或控制檯上的輸出日誌上會發生什麼? – user3433510

+2

@ user3433510假設您的根記錄器配置了ConsoleAppender,以便將所有INFO消息打印到控制檯。如果你有'additivity =「true」'(默認),你的'com.mypage.glass.TryWindow'記錄器也會輸出到控制檯。如果你想防止這種情況,你可以設置'additivity =「false」'。如果這些術語中的任何一個令人困惑,我建議您閱讀[簡要介紹log4j](https://logging.apache.org/log4j/1.2/manual.html)。 –