我怎样才能获得log4j的删除旧旋转日志文件? 我知道我可以设置自动作业(cron的UNIX和计划任务的Windows),但我想它的跨平台,我外面想在我们的应用程序的日志配置为我们的应用程序的一部分,而不是单独的代码OS具体的脚本语言。 我们的应用程序不是写在OS脚本语言,我不想做这部分内容在其中。
Answer 1:
RollingFileAppender进行此操作。 你只需要maxBackupIndex设置为备份文件的最高值。
Answer 2:
日志旋转是有原因的,所以你只能保持周围这么多的日志文件。 在log4j.xml文件,你可以添加到您的节点:
<param name="MaxBackupIndex" value="20"/>
该值告诉的log4j.xml到只保留大约20个旋转的日志文件。 如果你想,甚至1.如果您的应用程序不记录那么多的数据您可以限制这5,你必须跨越的最后8个月20个日志文件,但你只需要值得记录的一个星期,那么我想你需要调整的log4j.xml“MaxBackupIndex”和“MAXFILESIZE” PARAMS。
另外,如果你正在使用(而不是XML)属性文件并要保存15个文件(例如)
log4j.appender.[appenderName].MaxBackupIndex = 15
Answer 3:
没有默认值来控制删除由DailyRollingFileAppender创建旧的日志文件。 但是,你可以写在几乎相同的方式删除旧的日志文件作为设定maxBackupIndex确实为RollingFileAppender进行自己的自定义追加程序。
发现简单的说明这里
从1 :
如果你想使用Apache Log4J的DailyRollingFileAppender为每天的日志文件,则可能需要要指定应保持文件的最大数量。 就像滚动RollingFileAppender进行支持maxBackupIndex。 但Log4j的(Apache的log4j的1.2.16)的当前版本不提供任何机制如果您使用DailyRollingFileAppender删除旧的日志文件。 我试图让小的修改在DailyRollingFileAppender的原始版本添加maxBackupIndex财产。 因此,有可能清理其可能不需要以供将来使用旧的日志文件。
文章来源: How can I get log4j to delete old rotating log files?