强大的log4j,错误信息自动发送至邮箱

时间:2022-09-17 19:37:00

      前几天看师兄都不用看服务器,天天盯着邮箱看就能知道代码哪里出问题了。手痒,我就试试,写了一个小的程序Java的

导入jar文件

                                                 log4j-1.2.1.jar

                                                 activation.jar

                                                 mail.jar

项目结构:

                                                                                          强大的log4j,错误信息自动发送至邮箱


log4j.properties

log4j.appender.infoR.Append = true
log4j.appender.infoR.Threshold = INFO
#log4j.appender.infoR.DatePattern='_'yyyy-MM-dd-HH'.log'
log4j.appender.infoR.layout = org.apache.log4j.PatternLayout
log4j.appender.infoR.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [ %l ] %m%n

#errorR
log4j.appender.errorR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorR.File =f:/errorLog.txt
log4j.appender.errorR.Append = true
log4j.appender.errorR.Threshold = ERROR
#log4j.appender.errorR.DatePattern='_'yyyy-MM-dd-HH'.log'
log4j.appender.errorR.layout = org.apache.log4j.PatternLayout
log4j.appender.errorR.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [ %l ] %m%n
## MAIL
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=512
log4j.appender.MAIL.SMTPHost=smtp.sina.cn
log4j.appender.MAIL.Subject=\u522B\u6CE1\u59B9\u5B50\u4E86\uFF0C\u8D76\u7D27\u4FEE\u7406\u670D\u52A1\u5668
log4j.appender.MAIL.SMTPUsername=zhanglu1236789@sina.cn
log4j.appender.MAIL.SMTPPassword=aasd6778246995
log4j.appender.MAIL.From=zhanglu1236789@sina.cn
log4j.appender.MAIL.To=2366585970@qq.com
log4j.appender.MAIL.layout=test.Logger4jHTMLLayout
log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n

Logger4jHTMLLayout.jave

import org.apache.log4j.HTMLLayout;

/**
* author:zhanglu
* 2015年9月14日
* 下午5:19:58
*/
public class Logger4jHTMLLayout extends HTMLLayout {

@Override
public String getContentType() {
return "text/html;charset=utf-8";
}
}

checkLog4j1.java   测试类

import org.apache.log4j.Logger;

/**
* author:zhanglu
* 2015年9月14日
* 下午4:50:15
*/
public class checkLog4j1 {
private static Logger info = Logger.getLogger("InfoLogger");
private static Logger error = Logger.getLogger("ErrorLogger");
public static void main(String[] args) {

error.error("sdadfwf");
}
}

运行,邮箱收到如下邮件

强大的log4j,错误信息自动发送至邮箱


注意,大家一定要重写getContentType方法,防止乱码