我試圖使用log4j發送包含來自後臺進程的日誌語句的可通過郵件報告。我希望爲每個進程運行發送一封電子郵件,而不是每個日誌記錄的電子郵件。我查看了SMTPAppender
,但沒有看到在過程完成時手動發送報告的方式。我相信TriggeringEventEvaluator
可能是關鍵,但我遇到的一個問題是如何獲得TriggeringEventEvaluator
實例的句柄。我被卡住了,使用log4j 1.2.14,在1.2.15中引入了SMTPAppender.getEvaluator()
方法。有什麼想法嗎?我是否在正確的軌道上? SMTPAppender.close()
方法在這裏發揮作用嗎?使用log4j通過SMTPAppender發送電子郵件報告
我希望能夠做到這一點:
log.info(message1);
log.info(message2);
log.info(message3);
log.sendMail();
思考這個多一些,我想我需要澄清什麼,我希望能完成。我試圖捕獲運行石英作業的日誌記錄,並將生成的日誌作爲電子郵件發送。石英工作使得一堆服務方法調用進入各種服務。我想要包括這些服務方法執行的任何日誌記錄以及石英作業本身的日誌記錄。我想我可以做以下的事情來捕獲所有的日誌記錄,但它不起作用。
// at the beginning of quartz job
Logger logger = Logger.getRootLogger();
StringWriter sw = new StringWriter();
WriterAppender wa = new WriterAppender(new SimpleLayout(), sw);
logger.addAppender(wa);
// at the end of the quartz job
String report = sw.toString();
大概[此帖](http://stackoverflow.com/a/42435452/1902296)可以在上面log4j屬性有幫助 – gumkins 2017-02-24 10:21:24