为什么log4j重命名文件名?

时间:2017-08-29 05:57:59

标签: java log4j

我使用下面的代码。当我运行项目时创建MyLogFile.log文件。

第二天我运行项目,log4j将MyLogFile重命名为 MyLogFile.log_Y yesterday.log并创建新的MyLogFile文件并开始编写此文件。

为什么它不包含MyLogFile.log_ToDay.log文件? 为什么重命名fileName? 提前谢谢

log4j.rootLogger=DEBUG, stdout   
log4j.rootLogger=DEBUG, RollingAppender
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=d:/Logs/MyLogFile.log
log4j.appender.RollingAppender.DatePattern='_'yyyy-MM-dd'.log' 
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n

1 个答案:

答案 0 :(得分:1)

正在使用的appender是org.apache.log4j.DailyRolling‌​FileAppender,它会在日期更改时备份当前日志文件。

2017-08-29 ,将使用名称MyLogFile.log创建日志文件,并将日志写入日志文件。

2017-08-30 ,每当代码遇到要记录的内容时,appender会将前一天创建的文件重命名为MyLogFile_2017-08-29.log并创建一个新的MyLogFile.log当天。

有关其工作原理的详细信息,请参阅Javadoc for DailyRollingFileAppender