【总结】log4j SMTPAppender控制发送邮件间隔

简介:

Log4j的Appender中有个SMTPAppender,支持在日志事件发生ERROR及以上级别的时候发送邮件。

源代码中貌似在遇到ERROR的情况下就会发邮件,不排除程序会在某一时刻出错,一直有ERROR级别的日志,这个时候就会发送N多封邮件(邮箱服务累哭)。于是修改一下SMTPAppender源代码,使之能够在配置文件中控制发送邮件的间隔。


修改代码:

https://github.com/chocolateBlack/log4j/blob/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java


配置文件:

log4j.rootLogger=INFO,stdout,R,MAIL

# stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %c{2}:%L %m%n

log4j.appender.stdout.Encoding=UTF-8

# rolling log file

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.maxFileSize=1GB

log4j.appender.R.maxBackupIndex=10

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x -- %m%n

log4j.appender.R.File=/usr/local/flume/logs/server.log

log4j.appender.R.Encoding=UTF-8

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender

log4j.appender.MAIL.Threshold=ERROR

#发送邮件的时间间隔,防止系统产生很多ERROR日志,收到邮件太多,单位:1800秒log4j.appender.MAIL.SendMailInterval=1800

log4j.appender.MAIL.From=123@163.com

log4j.appender.MAIL.SMTPDebug=false

log4j.appender.MAIL.Subject=dx_flume_log4j

log4j.appender.MAIL.To=123@163.com.cn

log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout

log4j.appender.MAIL.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x




     本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1855801,如需转载请自行联系原作者



相关文章
|
10月前
更换外部晶振RT-Thread中修改频率
更换外部晶振RT-Thread中修改频率
110 0
|
4月前
|
监控 中间件 PHP
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
`hyperf-alarm-clock` 是专为 Hyperf 框架设计的库,用于监控代码执行时间并在超时后发送通知。支持多种通知通道,如标准输出、日志文件和飞书。适用于需要确保响应及时性的系统,如电商平台订单处理流程监控。安装简单,配置灵活,是提高系统性能和稳定性的有力工具。
69 1
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
在ftp中使用QNetworkReply未触发error信号?
在ftp中使用QNetworkReply未触发error信号?
193 0
|
前端开发 芯片
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
510 0
|
缓存
dwz增加info级别消息
dwz增加info级别消息
136 0
iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
原文:iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425) 问题描述:每隔一段时间应用程序池就会自动停止,报错:服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425) iis启动 服务无法在此时接受控制信息。
3465 0
|
数据建模 .NET 开发框架