Log4j.xml smtpappender emailthrottle

时间:2017-05-24 16:30:38

标签: log4j smtpappender

我有一个log4J.xml SMTPAppender配置如下:

  <appender name="MAIL" class="org.apache.log4j.net.SMTPAppender">
    <param name="Threshold" value="ERROR"/>
    <param name="EvaluatorClass" value="fi.reaktor.log4j.emailthrottle.ErrorEmailThrottle"/>
    <param name="BufferSize" value="512"/>
    <param name="SMTPHost" value="xxxx"/>
    <param name="SMTPPort" value="25"/>
    <param name="From" value="xxxx"/>
    <param name="To" value="xxx"/>
    <param name="Subject" value="xxx"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yyyy HH:mm:ss} [%-5p] [%c{1}: %M] %m%n"/>
    </layout>
</appender>

我使用了一个我在链接上建议的EvaluatorClass:https://github.com/reaktor/log4j-email-throttle

在页面上,标记为您可以更改log4j.properties文件中的默认配置:

  fi.reaktor.log4j.emailthrottle.throttleIfUnderSecs=60
  fi.reaktor.log4j.emailthrottle.emailIntervalInSecs=900
  fi.reaktor.log4j.emailthrottle.normalAfterSecs=3600

不幸的是,我没有看到如何在我的Log4j.xml文件中应用它。

1 个答案:

答案 0 :(得分:1)

您所引用的页面说:

  

您可以通过设置这些系统属性来更改默认值   所以你不能把这些设置放在log4j配置文件中。

您需要在启动jvm的命令行中设置这些属性,使用&#34; -D&#34;标志:

  

java -Dfi.reaktor.log4j.emailthrottle.throttleIfUnderSecs = 60 \     -Dfi.reaktor.log4j.emailthrottle.emailIntervalInSecs = 900 \     -Dfi.reaktor.log4j.emailthrottle.normalAfterSecs = 3600

或以编程方式从代码中设置它:

System.setProperty("fi.reaktor.log4j.emailthrottle.throttleIfUnderSecs", "60");
System.setProperty("fi.reaktor.log4j.emailthrottle.emailIntervalInSecs", "900");
System.setProperty("fi.reaktor.log4j.emailthrottle.normalAfterSecs", "3600");