使用log4j异步发送电子邮件

时间:2012-12-18 10:57:56

标签: java logging log4j

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

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

如果错误对流程是致命的,这是否会产生影响?在终端例外的情况下,我不希望在发送电子邮件之前该进程死亡。

2 个答案:

答案 0 :(得分:3)

方法似乎是:

  1. 照常创建您的电子邮件附加程序
  2. '用AsyncAppender
  3. '换行'

    配置类似于:

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

    然而,这并没有解决我对未能发送致命错误条件的电子邮件的担忧。请有人澄清一下吗?

答案 1 :(得分:0)

如果您可以切换日志记录框架,logback会异步发送电子邮件(enter image description here),因此不需要异步包装器。