前言
在系统上线后,有时候遇到系统故障,这时候就可以登录服务器查看系统日志来排查问题。但是需要登录服务器,下载查找相关异常日志比较麻烦。而且没有监控的话,也无法实时了解到系统是否正常运行。那么有没有一种好办法将系统异常信息实时反馈给相关人员呢?
本文讲的就是借助Log4J来记录程序运行日志,当一旦发现系统异常或者自己定义的其他一些情况发生时,及时通过邮件形式发送给相关负责人,并附上相关的系统日志信息,这样负责人就可以实时便捷的监控到系统的状态和相关异常信息。
另外
需要了解Log4J组件的使用,可以查看我以前写的这篇博客:Log4J的配置与使用详解[戳我]。
优点
采用这种方式的优点有:
- 实时性。不用定期或不定期的登陆系统查看是否正常运行。
- 及时性。一旦系统异常,就会通知。
- 便捷性。邮件里附上异常日志,不用登陆系统下载日志查看。
环境
导入依赖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
输出到邮件中显示如下图:
相关推荐
使用log4j2实现日志数据脱敏
Tomcat下使用Log4j接管生成日志文件,附件含配置说明以及所需要的jar包
log4j中配置日志文件相对路径方法分析 方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${...
示范如何在android工程中使用log4j记录日志
参照了几个网上大神配置,部分教程的描述有误,最终调试完成,可以实现kettle日志输出,测试版本...需要替换的文件为,Kettle的程序目录下data-integration-6.0\plugins\kettle5-log4j-plugin中有一个log4j.xml文件。
Log4j的包下载完成后,解压,将其中打包好的的log4j-1.x.x.jar导入你的工程LIB中。... //下面就可使用log4j log.info("info"); log.debug("debug"); log.error("error"); log.warn("warn"); } }
log4j按功能保存日志
使用Log4j进行日志操作,LOG4J是记录日志文件的强大工具,非常方便较大系统的开发。
最近写的demo。安卓环境使用log4j 滚动日志。 实现数据format格式化传输记录日志内容。 非配置文件的方式
使用Log4j进行日志操作使用Log4j进行日志操作使用Log4j进行日志操作使用Log4j进行日志操作
使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx
若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载
演示了java记录通过log4j2记录日志到mysql数据库中
详细介绍了log4j的使用方法,介绍了java中日志记录如何写入数据库,对于初学者来说很不错的一个文档
log4j.rootLogger=debug,CONSOLE,testfile,A1,MAIL ################### # Console Appender ################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=...
禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。...
针对 tomcat9 slf4j+log4j2 不写日志的问题进行修复
使用Log4net发送日志邮件实例
本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助
根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改