gpt4 book ai didi

java - jboss 6.x : sending e-Mails if specific type of Exception is thrown

转载 作者:行者123 更新时间:2023-11-29 03:52:10 37 4
gpt4 key购买 nike

我们使用 jBoss 日志记录并最终使其工作 - 现在我们遇到了一个问题,即我们不想在每次出现错误时都发送电子邮件。如果抛出定义的异常,我们只想发送一封电子邮件。例如com.myproject.exceptions.fatal.ProjectFatalException

“jboss-logging.xml”中的默认定义如下所示:

   <log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
<error-manager>
<only-once/>
</error-manager>

<level name="ERROR"/>
<properties>
<property name="to">admin@myhost.domain.com</property>
<property name="from">nobody@myhost.domain.com</property>
<property name="subject">JBoss Sever Errors</property>
<property name="SMTPHost">localhost</property>
<property name="bufferSize">10</property>
</properties>

<formatter>
<pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
</formatter>
</log4j-appender>

最佳答案

虽然这个答案晚了将近 3 个月,但希望这对您和 future 的其他人仍然有帮助。您可以使用 StringMatchFilter 将电子邮件限制为特定错误。

您可以结合使用 SMTPAppender 来解决这个问题和 filters .在您的 jboss-log4j.xml 中添加以下内容:-

<!-- add the SMTPAppender -->
<appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
</layout>
<param name="Threshold" value="ERROR"/>
<param name="To" value="someone@somewhere.com"/>
<param name="From" value="someone@somewhere.com"/>
<param name="Subject" value="JBoss Alert: ProjectFatalException"/>
<param name="SMTPHost" value="some.smtp.host"/>
<param name="BufferSize" value="512"/>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="error" />
<param name="LevelMax" value="fatal" />
</filter>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="ProjectFatalException" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>
<!-- add the SMTP appender to your project package category -->
<category name="com.myproject">
<priority value="ERROR"/>
<appender-ref ref="SMTP"/>
</category>

作为旁注,通常将 SMTP 等慢速附加程序添加为 ASYNC 是个好主意。默认情况下它是同步的。

关于java - jboss 6.x : sending e-Mails if specific type of Exception is thrown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261455/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com