需求描述:任何程序都会存在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=你的密码 # 发件人地址 log4j.appender.MAIL.From=xxxxx@163.com # 日志邮件的接收者 log4j.appender.MAIL.To=xxx@qq.com # 日志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即可
效果图:
文章来源于:http://www.blogjava.net/sxyx2008/archive/2010/07/14/326028.html