1. 程式人生 > >Log4j2配置SMTP郵件實現郵件傳送

Log4j2配置SMTP郵件實現郵件傳送

大綱:

  • 官網配置資訊
  • 實際使用

一、官網配置資訊

官網SMTPAppender配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <SMTP name="Mail" subject="Error Log" to="[email protected]" from="[email protected]
"
smtpHost="localhost" smtpPort="25" bufferSize="50">
</SMTP> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Mail"/> </Root> </Loggers> </Configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

二、實際使用

功能:當輸出的日誌級別為 error 級別以上時,就像某郵箱傳送日誌通知

郵件內容效果如下:
郵件內容

配置前準備:
1. 需要有一個啟動了 smtp 協議的 郵箱賬號;
2. 匯入必須的 jar 包;

我的配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
  <Appenders>
    <SMTP name="Mail" subject="Error Log"
to="[email protected]" from="[email protected]" replyTo="[email protected]" smtpProtocol="smtp" smtpHost="smtp.163.com" smtpPort="25" bufferSize="50" smtpDebug="false" smtpPassword="password" smtpUsername="[email protected]">
</SMTP> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Mail"/> </Root> </Loggers> </Configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

SMTP配置說明

屬性 說明
name appender 的名稱
subject 郵件標題
to 收件人列表,以逗號隔開 [email protected],[email protected]
from 發件人
smtpProtocol 協議,預設為 smtp
smtpHost 伺服器 例:smtp.163.com
smtpPort
smtpPassword 密碼
smtpUsername 使用者名稱


我遇到的問題:

1、沒有匯入activation.jar,mail.jar 這兩個jar包,所曝出的錯:

2016-06-22 15:45:48,860 ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.SmtpAppender for element SMTP. java.lang.reflect.InvocationTargetException
   ......
Caused by: java.lang.NoClassDefFoundError: javax/mail/MessagingException
    at org.apache.logging.log4j.core.appender.SmtpAppender.createAppender(SmtpAppender.java:142)
    ... 34 more
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    ... 35 more

   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2、沒有正確填寫 smtpUsername 導致的問題

2016-06-22 15:52:54,275 ERROR Error occurred while sending e-mail notification. com.sun.mail.smtp.SMTPSendFailedException: 553 authentication is required,163 smtp13,EcCowABXrbLaQ2pXI8GrBQ--.536S2 1466581979
   
  • 1