3
我使用log4j發送帶有例外的電子郵件。Log4j SmtpAppender - 主題中的例外
我的log4j的配置:
log4j.rootLogger=info, stdout, errmail
log4j.appender.errmail=cz.toby.utils.log.ErrSmtpAppender
[email protected]
log4j.appender.errmail.subject=Error -
log4j.appender.errmail.layout=org.apache.log4j.HTMLLayout
log4j.appender.errmail.threshold=debug
它完美,但我要的是dynamicaly改變主題的內容有例外的名稱。
我的appender看起來是這樣的:
public class ErrSmtpAppender extends SMTPAppender {
@Override
public void activateOptions() {
setSMTPHost("xxxxx");
setFrom("[email protected]");
setBufferSize(50);
super.activateOptions();
try {
msg.setSubject(msg.getSubject() + ", node: " + InetAddress.getLocalHost().getHostName());
} catch (Exception e) {
// do nothing, only cannot set host to subject
}
}
}
如何設置主題與異常編程的名字嗎?我試圖在互聯網上找到它,但我發現只有類似的主題,但不是我真正想要的。
是否有異常發生在你抓塊?你可以發佈那裏發生的事情而不是吞嚥嗎? 另外爲什麼不使用setSubject()形式的SMTPAppender類似於setFrom()爲什麼你直接調用它的味精呢? – 2012-01-30 17:30:09
這個try/catch塊現在不重要。如果將無法獲得主機名與「InetAddress.getLocalHost()。getHostName()」的情況,所以它不介意它只是從屬性文件沒有主機名設置主題...我想要什麼是要獲得我在應用程序中發現的任何異常的名稱,並將其設置爲主題。我希望這是可以理解的:) ...和msg.setSubject()或setSubject(),你是對的,我可以使用這個變種。 – 2012-01-31 09:12:03
哦,我不能使用setSubject(),它由於某種原因不起作用。我必須調用msg.setSubject(),但它不是我上一個問題的主要觀點。 – 2012-01-31 09:27:14