我在 Logback 中使用 SMTPAppender 在自动作业成功完成和遇到错误时发送消息。我希望以高度重视的方式发送通知我们错误的电子邮件。如何使用 Logback/SMPTAppender 来完成?如果不能开箱即用,有没有人可以分享这个问题的自制解决方案?
问问题
1617 次
2 回答
3
我查看了扩展 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);
}
}
这仅供内部使用,我们不太关心正确处理异常和/或添加日志级别和优先级的属性,但其他人可能想要。
于 2013-06-13T10:43:16.187 回答
0
试试这个,希望它能解决你的问题:
于 2013-07-09T06:12:29.410 回答