我使用下面的代码。当我运行项目时创建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
答案 0 :(得分:1)
正在使用的appender是org.apache.log4j.DailyRollingFileAppender
,它会在日期更改时备份当前日志文件。
2017-08-29 ,将使用名称MyLogFile.log
创建日志文件,并将日志写入日志文件。
2017-08-30 ,每当代码遇到要记录的内容时,appender会将前一天创建的文件重命名为MyLogFile_2017-08-29.log
并创建一个新的MyLogFile.log
当天。
有关其工作原理的详细信息,请参阅Javadoc for DailyRollingFileAppender。