1

我注意到,当使用 log4j 发送错误电子邮件时,由于 SMTP 协议协商和提交,程序的执行会暂停。

使错误电子邮件异步发送的推荐方法是什么?

如果错误对过程是致命的,这是否会产生影响?在终端异常的情况下,我不希望进程在发送电子邮件之前终止。

4

2 回答 2

3

该方法似乎是:

  1. 像往常一样创建您的电子邮件附加程序
  2. 用一个“包裹”它AsyncAppender

配置类似于:

<appender name="SmtpAppender" class="org.apache.log4j.net.SMTPAppender">
    <!-- ... -->
</appender>

<appender name="AsyncSmtpAppender" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="MAIL"/>
</appender>

但是,这并没有解决我对无法发送电子邮件导致进程中断的致命错误情况的担忧。有人可以澄清一下吗?

于 2012-12-18T11:37:13.107 回答
0

如果您可以切换日志框架,请logback异步发送电子邮件(http://logback.qos.ch/manual/appenders.html#SMTPAppender),因此不需要异步包装器。

于 2017-06-21T14:21:14.843 回答