【问题标题】:Setting importance on emails sent by Logback SMTPAppender设置 Logback SMTPAppender 发送的邮件的重要性
【发布时间】:2013-06-10 14:14:58
【问题描述】:

我在 Logback 中使用 SMTPAppender 在自动作业成功完成和遇到错误时发送消息。我希望以高度重视的方式发送通知我们错误的电子邮件。如何使用 Logback/SMPTAppender 来完成?如果不能开箱即用,有没有人可以分享这个问题的自制解决方案?

【问题讨论】:

  • 我不认为有一个参数可以做到这一点,但如果你准备好编写自定义附加程序,我认为它应该足够简单。您需要扩展标准,然后设置 mime 消息对象的标头。

标签: java logback smtpappender


【解决方案1】:

我查看了扩展 appender 并最终得到了这个,这似乎可以完成这项工作。

import javax.mail.MessagingException;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.net.SMTPAppender;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.helpers.CyclicBuffer;

public class PrioritySMPTAppender extends SMTPAppender {

    @Override
    protected void sendBuffer(CyclicBuffer<ILoggingEvent> cyclicBuffer, ILoggingEvent lastEventObject) {
        try {
            // 1,2 = high, 3 = normal, 4-5 = low, apparently. Most readers won't make
            // a difference between 1 and 2, or 4 and 5, allegedly.
            if(lastEventObject.getLevel().isGreaterOrEqual(Level.WARN)) {
                mimeMsg.setHeader("X-Priority", "1");
            } else {
                mimeMsg.setHeader("X-Priority", "3");
            }
        } catch(MessagingException e) {}
        super.sendBuffer(cyclicBuffer, lastEventObject);
    }   
}

这仅供内部使用,我们不太关心正确处理异常和/或添加日志级别和优先级的属性,但其他人可能想要。

【讨论】:

  • 我们从哪里得到 mimeMsg?
【解决方案2】:

【讨论】:

  • 也许我在这里遗漏了一些明显的东西,但我看不出你在哪里对正在发送的电子邮件的优先级做了任何事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
相关资源
最近更新 更多