Log4j2 SMTPAppender 配置与使用

大纲:

  • 官网配置信息
  • 实际使用

一、官网配置信息

官网SMTPAppender配置


<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>

二、实际使用

功能:当输出的日志级别为 error 级别以上时,就像某邮箱发送日志通知

邮件内容效果如下:
邮件内容

配置前准备:
1. 需要有一个启动了 smtp 协议的 邮箱账号;
2. 导入必须的 jar 包;

我的配置


<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>

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

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

你可能感兴趣的:(java日志)