2012-01-03 45 views
2

我使用log4j的爲我的項目之一,我知道這是可以設置的閾值對每個附加目的地。Log4J的具體水平,以特定的文件 - 追加程序

我的目標是隻記錄INFO消息到另一個文件中的文件和唯一的錯誤消息。

爲此使用閾值的問題是,如果我設置一個appender閾值爲INFO,另一個設置爲ERROR,當我記錄一條ERROR消息時,該消息將發送到兩個文件(appender)。

我該如何做到這一點?

在此先感謝

+0

這是你想要的嗎? http://stackoverflow.com/questions/728295/creating-multiple-log-files-of-different-content-with-log4j – donnior 2012-01-03 17:22:22

回答

5

我們用不同層次型動物記錄使用:

log4j.appender.XXXTracking.filter.LevelToMatch = INFO

與選項filter.LevelToMatch你可以編寫你想要的級別。這在log4j.properties

0

感謝您的答覆傢伙,

我所做的一切錯誤是,我試圖定義過濾器的屬性文件中。由於這種使用僅支持XML配置文件,因此我已更改爲XML文件。

爲了有我需要的正是我也不得不加入DenyAllFilter濾波器類型:

 <filter class="org.apache.log4j.varia.LevelMatchFilter"> 
      <param name="LevelToMatch" value="INFO" /> 
      <param name="AcceptOnMatch" value="true" />       
     </filter> 
     <filter class="org.apache.log4j.varia.DenyAllFilter" /> 

感謝您的幫助球員

+0

濾膜在屬性支持的文件,見[PropertyConfigurator](HTTP的Javadoc://日誌記錄。 apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html)。正確的語法是(通知ID):'log4j.appender.appenderName.filter.ID = fully.qualified.name.of.filter.class log4j.appender.appenderName.filter.ID.option1 = VALUE1 log4j.appender.appenderName .filter.ID.optionN = valueN' – rozky 2012-02-15 11:21:50