轻松配置log4j实现错误日志email通知

 转载:http://www.blogjava.net/sxyx2008/

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

没有更多推荐了,返回首页