我有一个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文件中应用它。
答案 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");