2011-04-07 24 views
6

我已將SMTPAppender配置到我的Java應用程序中。與SMTPAppender我只收到錯誤,而不是INFO類型的日誌項

<appender name="AdministratorEmail" class="org.apache.log4j.net.SMTPAppender"> 
    <param name="Threshold" value="info" /> 
    <param name="BufferSize" value="512" /> 
    <param name="SMTPHost" value="smtp.sss.intranet" /> 
    <param name="From" value="[email protected]" /> 
    <param name="To" value="[email protected]" /> 
    <param name="Subject" value="errors" />  
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" /> 
    </layout> 
    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
    <param name="LevelMin" value="info" /> 
    <param name="LevelMax" value="fatal" /> 
    </filter> 
</appender> 

我只收到ERROR日誌類型而不是INFO類型!我改變了LevelMin但沒有什麼,我插入了Thresold,但沒有!

有人有什麼建議嗎?

+0

我發現這個問題......這不是:-) 的觸發問題整個錯誤緩衝區是FIRST錯誤發送。因此,默認情況下,您將不會在郵件中看到任何郵件,直到出現錯誤。 – robob 2011-04-08 09:02:16

回答

15

設計的SMTPAppender只記錄ERROR和上面的消息。這個級別不能被屬性影響。附加狀態的文檔:

默認情況下,當附加ERROR或更高嚴重級別的消息時,將會發送電子郵件消息。 Class SMTPAppender

:觸發標準可以通過設置evaluatorClass屬性與實施TriggeringEventEvaluator一類的名稱,以TriggeringEventEvaluator的實例設置評價者屬性或嵌套其中指定的類實現TriggeringEventEvaluator

看到triggeringPolicy元件被修改

只有在第一個ERROR之後才能看到INFO消息的原因是由於bufferSize屬性顯示錯誤之前給錯誤提供上下文的'n'最近的日誌行。

這個進一步的研究表明,對TriggerEventEvaluator所需的界面中的「臨時演員同伴」

這可以從以下網址下載一個實現:Apache Download Mirrors

如果包括這在你的項目,你可以然後添加以下到您的log4j.xml定義SMTPAppender(注意:不支持的屬性格式!)

<appender name="SMTP" class="org.apache.log4j.net.SMTPAppender"> 
... 
    <triggeringPolicy class="org.apache.log4j.rolling.FilterBasedTriggeringPolicy"> 
     <filter class="org.apache.log4j.filter.LevelRangeFilter"> 
     <param name="levelMin" value="INFO" /> 
     </filter> 
    </triggeringPolicy> 
... 
    </appender> 
+0

這是一個很大的幫助。如果使用[Log4j 1.2.16或更高版本],那麼相同的配置也適用於Gmail(http://geekswithblogs.net/scarpenter/archive/2010/11/26/gmail-logging-with-log4j-1.2.16.aspx )。無需爲Gmail定製appender。 – Ziska 2013-01-31 23:59:39

+0

請記住按照正確的順序包含''標記,以避免log4j警告:'元素類型「appender」的內容必須匹配「errorHandler?,param *,rollingPolicy?,triggerPolicy?,connectionSource?,layout? ,濾波器*,附加器-REF *)」。' – 2014-09-02 15:19:20

相關問題