按大小和时间滚动日志

Mic*_*ael 8 java log4j rollingfileappender appender

我使用RollingFileAppenderlog4j 1.2.16,其推出的日志文件,当他们达到一定规模.现在我想每天滚动日志文件,当它们达到一定大小时.因此,每天将有一个或多个日志文件.

例如,

myapp.log
myapp-17.12.2013.log
myapp-16.12.2012.log
myapp-16.12.2012.1.log
myapp-16.12.2012.2.log

是否有一个现成的appender,它已经做到了吗?

小智 8

确实有两种选择:

  1. 使用LogBack及其大小和时间触发策略:http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP
  2. Log4J的TimeAndSizeRollingAppender来自:http://www.simonsite.org.uk/

请记住,这两个选项都使用文件重命名.如果有另一个脚本自动移动这些文件,请仔细考虑这一点.当两个进程处理同一个文件时,文件重命名是有风险的.

我的建议是直接在模式中写入不可变日志文件名:myapp- {dd.MM.yyyy}.{X} .log.那样"滚动"只是关闭一个文件并打开一个新文件.没有重命名.没有后台线程.