Java log4j SMTPAppender-通过电子邮件发送多条错误消息

Java log4j SMTPAppender-通过电子邮件发送多条错误消息,java,tomcat,log4j,smtpappender,Java,Tomcat,Log4j,Smtpappender,我使用log4j的SMTPAppender在每次异常时给我发电子邮件,但我真的更喜欢它将电子邮件聚合成一封包含一批错误的电子邮件,而不是针对每个错误发一封电子邮件 我见过bufferSize变量,但它似乎适用于所有类型的消息,而不仅仅是错误 有人知道我如何做到这一点吗 谢谢您可以使用:log4j.appender.myMail.evaluatorClass来实现TriggeringEventEvaluator,这样您就可以通过编程方式决定何时/发送什么消息。请参阅:了解更多详细信息。尝试在配置中

我使用log4j的SMTPAppender在每次异常时给我发电子邮件,但我真的更喜欢它将电子邮件聚合成一封包含一批错误的电子邮件,而不是针对每个错误发一封电子邮件

我见过bufferSize变量,但它似乎适用于所有类型的消息,而不仅仅是错误

有人知道我如何做到这一点吗


谢谢

您可以使用:
log4j.appender.myMail.evaluatorClass
来实现
TriggeringEventEvaluator
,这样您就可以通过编程方式决定何时/发送什么消息。请参阅:了解更多详细信息。

尝试在配置中添加/使用评估器,例如:

<evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="ERROR"/>
</evaluator>

还将lossy属性与所需的缓冲区大小一起设置为true:

<lossy value="true" />
<bufferSize value="xxxx" />


我看到了一个可以发送所有邮件的示例,但我只想发送错误及以上信息,并将它们聚合到一封电子邮件中。如果可能的话,我可以从我的程序发送一个发送电子邮件的信号吗?使用自定义TriggeringEventEvaluator将允许您以特殊的日志消息内容/级别发送自定义电子邮件。我现在已经成功实现了这一点。。。我在程序开始时将一个变量设置为false,然后在程序结束时将其设置为true。已在isTriggeringEvent()中签入此变量。。。问题是,我需要在将变量设置为true后编写自己的错误,以触发对isTriggeringEvent()的检查。有没有其他方法可以让我把邮件发送出去?如果我能用一条信息来代替那个错误信息就好了。换句话说。。。我需要的是可以调用SMTPAppender.sendBuffer()的东西。。。这是一个受保护的方法,从我的程序。那么除了发送另一个错误来触发这一点之外,还有其他类似的方法吗?我刚刚尝试过这个方法,但每次发生错误我都会收到一封电子邮件。