2011-10-03 45 views
2

正在使用log4j進行錯誤報告。我設置我的日誌4j還附加錯誤的電子郵件。不過,我需要它根據消息的級別將電子郵件發送到不同的組。例如向不同羣組發送電子郵件log4j錯誤

 info messages go to management- [email protected], [email protected], [email protected]     
     debug messages go to programmers - [email protected], [email protected] 
     warn messages go to administrator - [email protected] 

以這樣的方式,它有可能嗎?並有任何人實施上述程序(一個示例屬性文件,將不勝感激)

回答

1

應該很容易配置這樣的東西,使用來自log4j的SMTPAppender。但請注意,電子郵件日誌需要相當多的負載,特別是如果您考慮向開發人員郵寄DEBUG報告。

+0

你有一個屬性文件到效果 – user960740

+0

檢查出由@OdedPeer – nfechner

+0

答案odedpeer使用XML格式的犯規一定轉化爲類似的結果時,使用屬性文件 – user960740

1

可以使用log4j的過濾器做低於這個(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html

的例子,根據日誌級別消息寫入不同的文件。 這可以很容易地適應SMTPAppender而不是FileAppender。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="management" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="management.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m"/> 
     </layout> 
     <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
      <param name="LevelMin" value="INFO" /> 
      <param name="LevelMax" value="INFO" /> 
      <param name="AcceptOnMatch" value="true" /> 
     </filter> 
    </appender> 

    <appender name="programmers" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="programmers.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m"/> 
     </layout> 
     <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
      <param name="LevelMin" value="DEBUG" /> 
      <param name="LevelMax" value="DEBUG" /> 
      <param name="AcceptOnMatch" value="true" /> 
     </filter> 
    </appender> 

    <appender name="admin" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="admin.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m"/> 
     </layout> 
     <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
      <param name="LevelMin" value="WARN" /> 
      <param name="LevelMax" value="WARN" /> 
      <param name="AcceptOnMatch" value="true" /> 
     </filter> 
    </appender> 

    <category name="a"> 
     <level value="ALL" /> 
     <appender-ref ref="management"/> 
     <appender-ref ref="programmers"/> 
     <appender-ref ref="admin"/> 
    </category> 

</log4j:configuration>