Log4j发送邮件

源码地址:https://github.com/mistbor/Log4jSendMail

引入activation.jar           log4j.jar            mail.jar              slf4j-api.jar              slf4j-log4j.jar

项目结构搭建如下:

log4j.properties文件内容如下:

log4j.rootLogger=info,console,MAIL
log4j.logger.org.apache.mina.filter.logging.LoggingFilter=WARN
log4j.logger.com.playsnail.core.web.filter.IdentityFilter=WARN
log4j.logger.com.d1xn.common.log.Log=WARN
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%p-%d{yyyy/MM/dd/HH:mm:ss}]%c{1}.(%L) - %m%n
log4j.appender.console.Threshold=INFO

######################send error through email.######################
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#日志的错误级别
log4j.appender.MAIL.Threshold=ERROR
#缓存文件大小,日志达到2时发送Email
#log4j.appender.MAIL.BufferSize=2
#发送邮件的服务器
log4j.appender.MAIL.SMTPHost=smtp.163.com
#邮件主题
log4j.appender.MAIL.Subject=Log4JErrorMessage
#发送邮件箱的用户
log4j.appender.MAIL.SMTPUsername=projectutil@163.com
#发送邮件箱的密码
log4j.appender.MAIL.SMTPPassword=my123456
#发送邮件箱
log4j.appender.MAIL.From=projectutil@163.com
#接受邮件箱
log4j.appender.MAIL.To=projectutil@163.com
#发送邮件的格式
log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout

测试类TestLog4jSendMail(临时写入log4j配置):

import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.net.SMTPAppender;

public class TestLog4jSendMail {
    static Logger logger=Logger.getLogger(TestLog4jSendMail.class);
    SMTPAppender appender=new SMTPAppender();

    public TestLog4jSendMail() {
        try{
            appender.setSMTPUsername("projectutil@163.com");
            appender.setSMTPPassword("my123456");
            appender.setTo("projectutil@163.com");
            appender.setFrom("projectutil@163.com");
            appender.setSMTPHost("smtp.163.com");
            appender.setLocationInfo(true);
            appender.setSubject("Test Mail From Log4j");
            appender.setLayout(new PatternLayout());
            appender.activateOptions();
            logger.addAppender(appender);
            logger.error("测试");
        }catch (Exception e){
            e.printStackTrace();
        }    }

    public static void main(String[] args) {
        new TestLog4jSendMail();
    }
}

测试类TestLog4jSendMail2(加载log4j.properties文件)

import org.apache.log4j.Logger;

/**
 * Created by ${MiaoYing} on 2017/7/12.
 */
public class TestLog4jSendMail2 {
    public static void main(String[] args) {
        Logger logger=Logger.getLogger(TestLog4jSendMail2.class);
        int i=0;
        while (i<6){
            i+=1;
            logger.error("Do you received message?");
        }
    }
}
原文地址:https://www.cnblogs.com/miaoying/p/7158238.html