log4j2异步发送邮件配置

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/david_pfw/article/details/85846351

从高可用性方面考虑,大的平台通常都会配置错误日志发送邮件的功能,由于发送邮件比较慢,同步发邮件会影响用户体验,通常会配置成异步发日志邮件。网上只有零散的一些文章配置,没有一个完整的log4j2异步发邮件的配置说明,下面就详细说明一下 - log4j2异步发送邮件的详细配置

1. 环境说明

是基于 spring boot 项目做的配置,不过这跟log4j2的发邮件配置关系不是很大

2. 配置步骤:

2.1. 添加依赖

有的文章说要引用这些包,但是我spring boot的项目没引入也可以正常发邮件,估计spring boot本身就有这些包吧,大家看自己情况

<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.4</version>
</dependency>

2.2. 配置log4j2.xml

<appenders>
        <!--1. 设置SMTPAppender属性-->
        <smtp name="Mail" subject="Error Log" to="[email protected],[email protected]" from="[email protected]" 
        	  replyTo="[email protected]" smtpHost="smtp.exmail.qq.com"  smtpDebug="false" smtpProtocol="smtps" 
        	  smtpUsername="[email protected]" smtpPassword="******" smtpPort="465" bufferSize="1024">
              <!--定义error级别日志才发-->
        	  <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
		</smtp>
		<!--2. 定义异步发通知邮件AsyncAppender属性-->
		<Async name="AsyncMail">
			<appender-ref ref="Mail"/>
		</Async>
</appenders>
<loggers>
        <root level="info">
             <appender-ref ref="Console"/>
             <appender-ref ref="RollingFileInfo"/>
             <appender-ref ref="RollingFileError"/>
             <appender-ref ref="log"/>
             <!--3. 在root里面调用AsyncAppender配置-->
             <appender-ref ref="AsyncMail"/>
        </root>
 </loggers>

这样配置完已经可以异步发邮件了,而且是只有在产生error级别日志才发,所有类都能监控到。

有图有真相,这是效果图,还是挺爽的,O(∩_∩)O哈哈~

下面补充说明一下相应关键配置。

3. 补充说明

3.1. SMTP配置说明

特别说明:

smtpProtocol, 默认为smtp,但是如果用的是企业邮箱(如腾讯企业邮箱),通常是要使用smtps的,否则连不上smtp.exmail.qq.com 465

3.2. 参照:

1. 官网说明:https://logging.apache.org/log4j/2.x/manual/appenders.html

log4j2有很多扩展工具类,异步发邮件主要看两块:

①. SMTPAppender : 邮件发送扩展类

②. AsyncAppender  :  异步操作扩展类

2. 这两篇blog写的也比较详细,需要综合到一块看

https://blog.csdn.net/u011277123/article/details/70899290

https://blog.csdn.net/Maskkiss/article/details/82013137 

猜你喜欢

转载自blog.csdn.net/david_pfw/article/details/85846351