温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

        需求描述:任何程序都会存在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即可
        效果图:

            log4j.properties
posted on 2010-07-14 01:44 雪山飞鹄 阅读(8402) 评论(2)  编辑  收藏 所属分类: javasespring

Feedback

# re: 轻松配置log4j实现错误日志email通知 2010-07-14 08:46 梦源
不错! 学习了!
  回复  更多评论
  

# re: 轻松配置log4j实现错误日志email通知 2013-01-15 11:58 龙哥
测试有效!!!感谢分享!  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: