使用Log4J監(jiān)控系統(tǒng)日志郵件警報(bào)

前言

在系統(tǒng)上線后,有時(shí)候遇到系統(tǒng)故障,這時(shí)候就可以登錄服務(wù)器查看系統(tǒng)日志來排查問題。但是需要登錄服務(wù)器,下載查找相關(guān)異常日志比較麻煩。而且沒有監(jiān)控的話,也無法實(shí)時(shí)了解到系統(tǒng)是否正常運(yùn)行。那么有沒有一種好辦法將系統(tǒng)異常信息實(shí)時(shí)反饋給相關(guān)人員呢?

本文講的就是借助Log4J來記錄程序運(yùn)行日志,當(dāng)一旦發(fā)現(xiàn)系統(tǒng)異常或者自己定義的其他一些情況發(fā)生時(shí),及時(shí)通過郵件形式發(fā)送給相關(guān)負(fù)責(zé)人,并附上相關(guān)的系統(tǒng)日志信息,這樣負(fù)責(zé)人就可以實(shí)時(shí)便捷的監(jiān)控到系統(tǒng)的狀態(tài)和相關(guān)異常信息。

優(yōu)點(diǎn)

采用這種方式的優(yōu)點(diǎn)有:

  1. 實(shí)時(shí)性。不用定期或不定期的登陸系統(tǒng)查看是否正常運(yùn)行。
  2. 及時(shí)性。一旦系統(tǒng)異常,就會(huì)通知。
  3. 便捷性。郵件里附上異常日志,不用登陸系統(tǒng)下載日志查看。

環(huán)境

導(dǎo)入依賴jar包:

1. log4j-1.2.17.jar

官網(wǎng)下載地址[戳我]

目前l(fā)og4j最新版是1.2.17。低版本的log4j無法實(shí)現(xiàn)郵件發(fā)送功能,因?yàn)榘姹镜陀趌og4j-1.2.14.jar的不支持SMTP認(rèn)證。

發(fā)送郵件的一個(gè)重要的類是SMTPAppender,在1.2.8的版本中,SMTPAppender沒有SMTPUsername和SMTPPassword屬性。這兩個(gè)屬性分別是登錄SMTP服務(wù)器發(fā)送認(rèn)證的用戶名和密碼。

2. mail-1.4.jar

發(fā)送郵件當(dāng)然需要用到JavaMail包啦。

3. activation-1.1.jar

配置

配置log4j.properties文件,如下:

1 log4j.rootLogger=DEBUG, MAIL
 2 
 3 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
 4 log4j.appender.MAIL.Threshold=ERROR
 5 log4j.appender.MAIL.BufferSize=10
 6 log4j.appender.MAIL.From=123@qq.com
 7 log4j.appender.MAIL.SMTPHost=smtp.qq.com
 8 log4j.appender.MAIL.SMTPUsername=123
 9 log4j.appender.MAIL.SMTPPassword=***
10 log4j.appender.MAIL.SMTPDebug=false
11 log4j.appender.MAIL.Subject=Log4JErrorMessage 12 log4j.appender.MAIL.To=123@qq.com 13 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 14 log4j.appender.MAIL.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x -- %m%n

每行配置詳解:

3.log4j的郵件發(fā)送appender,如果有必要你可以寫自己的appender。

4.發(fā)送郵件的門檻,僅當(dāng)?shù)扔诨蚋哂贓RROR級(jí)別時(shí),郵件才被發(fā)送。

5.緩存文件大小,日志達(dá)到10k時(shí)發(fā)送Email。

6.發(fā)送郵件的郵箱帳號(hào)。

7.SMTP郵件發(fā)送服務(wù)器地址。

8.SMTP發(fā)送認(rèn)證的帳號(hào)名。

9.SMTP發(fā)送認(rèn)證帳號(hào)的密碼。

10.是否打印調(diào)試信息,如果選true,則會(huì)輸出和SMTP之間的握手等詳細(xì)信息

11.郵件主題。

12.發(fā)送到什么郵箱,如果要發(fā)送給多個(gè)郵箱,則用逗號(hào)分隔。

其他

如果需要抄送給某人,則添加如下配置:

log4j.appender.MAIL.Bcc=xxx@xxx.xxx

想讓郵件內(nèi)容日志以HTML格式來輸出,則配置:

log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout

輸出到郵件中顯示如下圖:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容