log4j2異步發送error日誌郵件配置

從高可用性方面考慮,大的平臺通常都會配置錯誤日誌發送郵件的功能,由於發送郵件比較慢,同步發郵件會影響用戶體驗,通常會配置成異步發日誌郵件。網上只有零散的一些文章配置,沒有一個完整的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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章