从log4j发送电子邮件

时间:2010-12-03 00:01:17

标签: java logging smtp log4j appender

我目前通过log4j发送电子邮件错误:

<appender name="email" class="org.apache.log4j.net.SMTPAppender">
    <param name="SMTPHost" value="localhost"/>
    <param name="From" value="notifications@mydomain.com"/>
    <param name="To" value="me@mydomain.com"/>
    <param name="Subject" value="Error from mydomain.com"/>
</appender>

效果很好,但我真的想偶尔从特定的日志文件中给我发电子邮件。这个其他日志文件,我甚至想要记录的INFO事件。我怎么做?如果我尝试设置另一个emailAppender,或者只是使用这个emailAppender,则没有任何内容可以通过电子邮件发送,因为似乎有一个ERROR或更糟糕事件的过滤器。所以我尝试添加LevelRangeFilter:

    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="INFO"/>
        <param name="LevelMax" value="FATAL"/>
    </filter>

但它对SMTPAppender没有影响:(。

1 个答案:

答案 0 :(得分:0)

javadoc看起来这个appender使用超级特殊的TriggeringEventEvaluator作为过滤机制。您可以通过使用始终返回true的赋值器创建appender来解决此问题。我不确定。