2012-09-17 128 views
1

我使用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"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
</appender> 

<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="TCS_patch_9/log/retailer_debug.log" /> 
    <param name="Threshold" value="DEBUG" /> 
    <param name="MaxFileSize" value="2MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> 
    </layout> 
</appender> 

<appender name="INFO" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="TCS_patch_9/log/retailer_info.log" /> 
    <param name="Threshold" value="INFO" /> 
    <param name="MaxFileSize" value="2MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> 
    </layout> 
</appender> 
<appender name="ERROR" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="TCS_patch_9/log/retailer_error.log" /> 
    <param name="Threshold" value="ERROR" /> 
    <param name="MaxFileSize" value="2MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> 
    </layout> 
</appender> 
<appender name="FATAL" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="TCS_patch_9/log/retailer_repeat_delay.log" /> 
    <param name="Threshold" value="FATAL" /> 
    <param name="MaxFileSize" value="2MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %-5p %c - %m%n"/> 
    </layout> 
</appender> 

    <root> 
    <priority value ="error" /> 
    <appender-ref ref="console"/> 
    <appender-ref ref="DEBUG"/> 
    <appender-ref ref="INFO"/> 
    <appender-ref ref="ERROR"/> 
    <appender-ref ref="FATAL"/> 
    </root> 

</log4j:configuration> 
+2

什麼不順心? – oers

+0

歡迎來到SO。如果我們不知道什麼行爲是不可取的,那很難提供幫助。 –

+0

感謝JohnB和oers。問題是我試圖過濾我的信息。我想在retailer_error.log中記錄錯誤消息,在零售商信息記錄中記錄錯誤消息,其他類似。 – seeker

回答

5

的log4j的追加程序的標準行爲是,他們將所有消息記錄在自己的閾值水平或更高,即具有閾值的INFO一個appender將登錄INFO,WARN,ERROR和FATAL消息,但不能進行調試。如果你想記錄 INFO的消息但不WARN及以上然後you need to use a LevelMatchFilter

您還需要設置你的根記錄優先DEBUG,否則只會發送錯誤和FATAL消息給它附加目的地和您的DEBUG和INFO文件將是空的。

+4

下面是一個例子配置文件的鏈接:http://wiki.apache.org/logging-log4j/LogToAppenderByLevel – dertoni

+0

thansk @dertoni您提供的鏈接也幫助我:) – seeker

相關問題