輕鬆配置log4j實現錯誤日誌email通知
阿新 • • 發佈:2018-12-31
轉載:http://www.blogjava.net/sxyx2008/
需求描述:任何程式都會存在bug,雖然專案經過反覆測試,已經上線運行了,但難免會遇到各種錯誤,在這裡輕鬆配置log4j實現錯誤訊息的email通知.
兩個檔案:web.xml log4j.properties
web.xml
log4j.properties
注:在以上log4j.properties檔案中配置了自己的自定義layout,由於log4j預設採用的純文字方式.這樣不便於我們在郵件中檢視,因此覆蓋它的layout,自定義屬於我們自己的layout
自定義類com.quartz.demo.Loger4JHTMLLayOut完成了該功能
即:只需設定contentType為text/html即可
效果圖:
log4j.properties
需求描述:任何程式都會存在bug,雖然專案經過反覆測試,已經上線運行了,但難免會遇到各種錯誤,在這裡輕鬆配置log4j實現錯誤訊息的email通知.
兩個檔案:web.xml log4j.properties
web.xml
在web.xml中新增如下程式碼
<!-- 設定上下文引數 --> <context-param> <!-- log4j配置檔案位置 --> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <!-- log4j監聽器 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
log4j.properties
## ROOT
log4j.rootLogger=INFO,CONSOLE,MAIL
## CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.CONSOLE.layout.ConversionPattern=[\u8C03\u8BD5\u4FE1\u606F]%-5p %c %x - %m%n
## File
log4j.appender.A_default=org.apache.log4j.RollingFileAppender
log4j.appender.A_default.Threshold=INFO
log4j.appender.A_default.File=e\:/logs/log4j.log
log4j.appender.A_default.MaxFileSize=4000KB
log4j.appender.A_default.MaxBackupIndex=10
log4j.appender.A_default.layout=org.apache.log4j.PatternLayout
log4j.appender.A_default.layout.ConversionPattern=[\u8C03\u8BD5\u4FE1\u606F]%-5p %c %x - %m%n
## MAIL
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
# 日誌的錯誤級別
log4j.appender.MAIL.Threshold=ERROR
# 快取檔案大小,日誌達到512K時傳送Email
log4j.appender.MAIL.BufferSize=10
# 傳送郵件的伺服器
log4j.appender.MAIL.SMTPHost=smtp.163.com
# 郵件的標題
log4j.appender.MAIL.Subject=\u6D4B\u8BD5log4j\u8F93\u51FA\u9519\u8BEF\u4FE1\u606F\u5230\u65E5\u5FD7
# 使用者名稱
log4j.appender.MAIL.SMTPUsername=你的使用者名稱
# 密碼
log4j.appender.MAIL.SMTPPassword=你的密碼
# 發件人地址
[email protected]
# 日誌郵件的接收者
[email protected]
# 日誌PatternLayout
log4j.appender.MAIL.layout=com.quartz.demo.Loger4JHTMLLayOut
# 日誌的格式
log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n
注:在以上log4j.properties檔案中配置了自己的自定義layout,由於log4j預設採用的純文字方式.這樣不便於我們在郵件中檢視,因此覆蓋它的layout,自定義屬於我們自己的layout
自定義類com.quartz.demo.Loger4JHTMLLayOut完成了該功能
package com.quartz.demo; import org.apache.log4j.HTMLLayout; public class Loger4JHTMLLayOut extends HTMLLayout{ @Override public String getContentType() { return "text/html;charset=utf-8"; } }
即:只需設定contentType為text/html即可
效果圖:
log4j.properties