【总结】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,如需转载请自行联系原作者



相关文章
|
16天前
|
Linux
USRP N320更改主时钟频率及测试
USRP N320更改主时钟频率及测试
15 0
|
18天前
更换外部晶振RT-Thread中修改频率
更换外部晶振RT-Thread中修改频率
|
存储 运维 网络协议
如何实现 呼叫速率(caps) 值控制
首先,企业需要明确的是呼叫中心系统搭建的目的。搭建这个呼叫中心是想用来做什么呢? 是为了企业当做呼入型的客服使用? 还是用来当电话外呼使用? 是企业想做营销用呢还是政府单位办公使用? 是要做外包服务呢还是自己用? 是想挣钱用呢还是想做客户服务使用? 需求 呼叫中心的搭建肯定有需求,这就要把一份需求文档写出来。比如想要做什么,每一点写的清清楚楚: 需求包括现在有什么? 碰到了什么问题? 以后想整成什么样? 设置,扩容以及升级的快速,成本与灵活性 一个企业的业务、流程与规模有时候随着市场的快速成长会有很大的变化。这时候,企业的呼叫中心系统就要能够快速的适应市场,能让企业做出适当的调整。比如,呼叫中
|
7月前
在ftp中使用QNetworkReply未触发error信号?
在ftp中使用QNetworkReply未触发error信号?
61 0
|
6月前
|
前端开发 芯片
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
|
Linux 异构计算 Windows
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】
如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】
TF2中 监听者 对于 时间的控制
这篇博客讲解 如何在使用lookupTransform() 函数时, 监听指定时间一定延时内的 可以用的坐标变换
|
缓存 监控 Go
记录一次MQTT client反复上下线问题
# 问题描述 有两个使用go语言编写的MQTT agent A 和 B 同时运行,监听和使用不同的topic,其中一个agent A反复上线下线,导致cmdb反复更新和查询设备,进而导致mongo负载高。关掉 A之后负载恢复正常 ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/23fbb14a-70e4-48f7-a4a
742 0
记录一次MQTT client反复上下线问题
|
Linux 开发者
第六章--定时测量
        定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的。 一、时钟和定时器电路         在80x86体系结构上,内核必须显示地与几种时钟和定时器电路打交道。
981 0