[Java教程]基于Log4j完成定时创建和删除日志的方法
0 2017-03-05 00:00:21
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
1.背景
Log4j作为常用的日志生成工具,其清楚日志的策略缺十分有限。只有在RollingFileAppender中可以通过设置MaxFileSize和maxBackupIndex属性来指定要保留的日志文件大小以及个数,从而实现自动清除。
但是实际生产中,我们的真实的需求常常是定时生成日志,然后保留最近几天的日志,历史日志需要及时清理。可是Log4j中的DailyRollingFileAppender这个类却不带属性maxBackupIndex,maxFileSize等,所以无法通过直接配置实现。
针对这种情况,一般方法是写一个定时删除日志的脚本等,这里我们讨论一种通过继承FileAppender,重新实现DailyRollingFileAppender类,并且带有按时间顺序清理日志的功能。
2.具体实现
2.1代码实现
a.完成自定义的日期类和文件过滤类,为进行文件命名和查找做准备。
b.继承FileAppender类,定义好文件输出日期格式以及文件备份参数。
c.重写核心的RollOver函数。