前言html
在系统上线后,有时候遇到系统故障,这时候就能够登陆服务器查看系统日志来排查问题。可是须要登陆服务器,下载查找相关异常日志比较麻烦。并且没有监控的话,也没法实时了解到系统是否正常运行。那么有没有一种好办法将系统异常信息实时反馈给相关人员呢?java
本文讲的就是借助Log4J来记录程序运行日志,当一旦发现系统异常或者本身定义的其余一些状况发生时,及时经过邮件形式发送给相关负责人,并附上相关的系统日志信息,这样负责人就能够实时便捷的监控到系统的状态和相关异常信息。apache
另外缓存
须要了解Log4J组件的使用,能够查看我之前写的这篇博客:Log4J的配置与使用详解[戳我]。服务器
优势app
采用这种方式的优势有:spa
环境.net
导入依赖jar包:调试
1. log4j-1.2.17.jar日志
目前log4j最新版是1.2.17。低版本的log4j没法实现邮件发送功能,由于版本低于log4j-1.2.14.jar的不支持SMTP认证。
发送邮件的一个重要的类是SMTPAppender,在1.2.8的版本中,SMTPAppender没有SMTPUsername和SMTPPassword属性。这两个属性分别是登陆SMTP服务器发送认证的用户名和密码。
2. mail-1.4.jar
发送邮件固然须要用到JavaMail包啦。
3. activation-1.1.jar
配置
配置log4j.properties文件,以下:
1 log4j.rootLogger=DEBUG, MAIL 2 3 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 4 log4j.appender.MAIL.Threshold=ERROR 5 log4j.appender.MAIL.BufferSize=10 6 log4j.appender.MAIL.From=123@qq.com 7 log4j.appender.MAIL.SMTPHost=smtp.qq.com 8 log4j.appender.MAIL.SMTPUsername=123 9 log4j.appender.MAIL.SMTPPassword=*** 10 log4j.appender.MAIL.SMTPDebug=false 11 log4j.appender.MAIL.Subject=Log4JErrorMessage 12 log4j.appender.MAIL.To=123@qq.com 13 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 14 log4j.appender.MAIL.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x -- %m%n
每行配置详解:
3.log4j的邮件发送appender,若是有必要你能够写本身的appender。
4.发送邮件的门槛,仅当等于或高于ERROR级别时,邮件才被发送。
5.缓存文件大小,日志达到10k时发送Email。
6.发送邮件的邮箱账号。
7.SMTP邮件发送服务器地址。
8.SMTP发送认证的账号名。
9.SMTP发送认证账号的密码。
10.是否打印调试信息,若是选true,则会输出和SMTP之间的握手等详细信息
11.邮件主题。
12.发送到什么邮箱,若是要发送给多个邮箱,则用逗号分隔。
其余
若是须要抄送给某人,则添加以下配置:
log4j.appender.MAIL.Bcc=xxx@xxx.xxx
想让邮件内容日志以HTML格式来输出,则配置:
log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
输出到邮件中显示以下图: