使用log4j SMTPAppender将日志发送到电子邮件

时间:2015-10-29 13:11:27

标签: java spring log4j spring-boot smtpappender

我有一个Spring Boot应用程序。我正在尝试使用SMTPAppender将日志发送到邮件,但我没有收到任何邮件。我已经设法将log4j用于ConsoleAppender和RollingFileAppender,所以我想我正确地添加了log4j,并且可以看到具有log4j属性的文件。

这是我的log4j.properties文件:

log4j.rootLogger = info, email, stdout, file

log4j.appender.email=org.apache.log4j.net.SMTPAppender
log4j.appender.email.SMTPHost=smtp.google.com
log4j.appender.email.SMTPUsername=xyz@gmail.com
log4j.appender.email.SMTPPassword=abc123
log4j.appender.email.From=xyz@gmail.com
log4j.appender.email.To=xyz@gmail.com
log4j.appender.email.Subject=Log
log4j.appender.email.BufferSize=1
log4j.appender.email.EvaluatorClass=TriggerLogEvent
log4j.appender.email.layout=org.apache.log4j.PatternLayout
log4j.appender.email.layout.ConversionPattern=%m

#------------------------------------------------------------------------------------------

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

#------------------------------------------------------------------------------------------

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylog.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

1 个答案:

答案 0 :(得分:3)

我从有关SMTPAppender的文档中找到了一个重要的部分。

  

默认情况下,如果附加了ERROR或更高级别的消息,将发送电子邮件。可以通过将evaluateatorClass属性设置为实现TriggeringEventEvaluator的类的名称,使用TriggeringEventEvaluator实例设置evaluateator属性或嵌套triggeringPolicy元素(其中指定的类实现TriggeringEventEvaluator

)来修改触发条件。

此外,您无法使用“smtp.google.com” - 它应该是smtp.gmail.com 你应该使用GmailSMTPAppender,详细信息在这里 - http://www.tgerm.com/2010/05/log4j-smtpappender-gmail-custom.html