0
我使用Log4j在錯誤上發送電子郵件日誌,並且想要在java中設置log4j中的SMTP設置,而不是在屬性文件中設置。設置密碼的作品,我可以成功地用它發送電子郵件以編程方式設置SMTP設置的Log4j不完全正常工作
private static final Logger logger = Logger.getLogger("emailer");
(...)
Enumeration<?> enm = logger.getAllAppenders();
while (enm.hasMoreElements()) {
Object element = enm.nextElement();
if (element instanceof SMTPAppender) {
((SMTPAppender) element).setSMTPPassword(password);
}
}
然而,使用SMTPAppender其他制定者不執行任何操作(設置主機,用戶名等),和log4j的將繼續使用屬性文件中的設置。
(...)
log4j.logger.emailer=stdout, email
log4j.additivity.emailer=false
log4j.appender.email=org.apache.log4j.net.SMTPAppender
log4j.appender.email.SMTPHost=smtp.gmail.com
log4j.appender.email.SMTPPort=465
[email protected]
log4j.appender.email.SMTPPassword=-
[email protected]
[email protected]
log4j.appender.email.Subject=Error Alert
log4j.appender.email.layout=org.apache.log4j.PatternLayout
log4j.appender.email.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
log4j.appender.email.BufferSize=10
log4j.appender.email.Threshold=ERROR