使用Log4J監控系統日誌郵件警報
轉自http://www.cnblogs.com/hellojava/p/3597306.html
前言
在系統上線後,有時候遇到系統故障,這時候就可以登入伺服器檢視系統日誌來排查問題。但是需要登入伺服器,下載查詢相關異常日誌比較麻煩。而且沒有監控的話,也無法實時瞭解到系統是否正常執行。那麼有沒有一種好辦法將系統異常資訊實時反饋給相關人員呢?
本文講的就是藉助Log4J來記錄程式執行日誌,當一旦發現系統異常或者自己定義的其他一些情況發生時,及時通過郵件形式傳送給相關負責人,並附上相關的系統日誌資訊,這樣負責人就可以實時便捷的監控到系統的狀態和相關異常資訊。
另外
需要了解Log4J元件的使用,可以檢視我以前寫的這篇部落格:
優點
採用這種方式的優點有:
- 實時性。不用定期或不定期的登陸系統檢視是否正常執行。
- 及時性。一旦系統異常,就會通知。
- 便捷性。郵件裡附上異常日誌,不用登陸系統下載日誌檢視。
環境
匯入依賴jar包:
1. log4j-1.2.17.jar
目前log4j最新版是1.2.17。低版本的log4j無法實現郵件傳送功能,因為版本低於log4j-1.2.14.jar的不支援SMTP認證。
傳送郵件的一個重要的類是SMTPAppender,在1.2.8的版本中,SMTPAppender沒有SMTPUsername和SMTPPassword屬性。這兩個屬性分別是登入SMTP伺服器傳送認證的使用者名稱和密碼。
2. mail-1.4.jar
傳送郵件當然需要用到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的郵件傳送appender,如果有必要你可以寫自己的appender。
4.傳送郵件的門檻,僅當等於或高於ERROR級別時,郵件才被髮送。
5.快取檔案大小,日誌達到10k時傳送Email。
6.傳送郵件的郵箱帳號。
7.SMTP郵件傳送伺服器地址。
8.SMTP傳送認證的帳號名。
9.SMTP傳送認證帳號的密碼。
10.是否列印除錯資訊,如果選true,則會輸出和SMTP之間的握手等詳細資訊
11.郵件主題。
12.傳送到什麼郵箱,如果要傳送給多個郵箱,則用逗號分隔。
其他
如果需要抄送給某人,則新增如下配置:
[email protected]
想讓郵件內容日誌以HTML格式來輸出,則配置:
log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
輸出到郵件中顯示如下圖:
作者:李天煒
出處:http://www.cnblogs.com/hellojava/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。