您的配置和测试程序看起来不错。我测试了Main.java和log4j2.xml配置,它按预期工作:触发翻转的每一分钟,“删除”操作都会扫描基本目录,仅删除3分钟之前的文件。
我没有创建独立的应用程序,而是在IDE中进行了测试。(看起来您正在将log4j jar文件以及您的类和配置着色到单个jar中。这可能会引起问题吗?)
通过将config更改为启用log4j内部日志记录后
<Configuration status="TRACE" ...,我得到以下输出:
- 迭代3:尚未删除任何文件:最早的文件为173秒。
- 迭代4:删除最早的文件。
…(省略启动日志)…
log iteration: 32016-01-16 14:26:23,192 main TRACE PatternProcessor.getNextTime returning 2016/01/16-14:27:00.000, nextFileTime=2016/01/16-14:26:59.000, prevFileTime=2016/01/16-14:25:59.000, current=2016/01/16-14:26:23.192, freq=EVERY_SECOND2016-01-16 14:26:23,193 main TRACE DefaultRolloverStrategy.purge() took 0.0 milliseconds2016-01-16 14:26:23,194 main DEBUG RollingFileManager executing synchronous FileRenameAction[c:templogapp.log to c:templogapp-2016-01-16-14-25-59.log, renameEmptyFiles=false]2016-01-16 14:26:23,198 main DEBUG RollingFileManager executing async CompositeAction[DeleteAction[basePath=c:templog, options=[], maxDepth=1, conditions=[IfFileName(glob:app-*.log), IfLastModified(age=PT3M)]]]2016-01-16 14:26:23,199 Log4j2-2 DEBUG Starting DeleteAction[basePath=c:templog, options=[], maxDepth=1, conditions=[IfFileName(glob:app-*.log), IfLastModified(age=PT3M)]]2016-01-16 14:26:23,200 Log4j2-2 DEBUG DeleteAction complete in 0.001186309 seconds2016-01-16 14:26:23,201 Log4j2-2 TRACE Sorted paths:2016-01-16 14:26:23,201 Log4j2-2 TRACE c:templogapp.log (modified: 2016-01-16T05:26:23.199631Z)2016-01-16 14:26:23,201 Log4j2-2 TRACE c:templogapp-2016-01-16-14-25-59.log (modified: 2016-01-16T05:25:30.832634Z)2016-01-16 14:26:23,203 Log4j2-2 TRACE c:templogapp-2016-01-16-14-24-59.log (modified: 2016-01-16T05:25:23.188525Z)2016-01-16 14:26:23,203 Log4j2-2 TRACE c:templogapp-2016-01-16-14-23-59.log (modified: 2016-01-16T05:23:29.466887Z)2016-01-16 14:26:23,204 Log4j2-2 TRACE IfFileName REJECTED: 'glob:app-*.log' does not match relative path 'app.log'2016-01-16 14:26:23,204 Log4j2-2 TRACE Not deleting base=c:templog, relative=app.log2016-01-16 14:26:23,205 Log4j2-2 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-25-59.log'2016-01-16 14:26:23,205 Log4j2-2 TRACE IfLastModified REJECTED: app-2016-01-16-14-25-59.log ageMillis '52373' < 'PT3M'2016-01-16 14:26:23,205 Log4j2-2 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-25-59.log2016-01-16 14:26:23,206 Log4j2-2 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-24-59.log'2016-01-16 14:26:23,206 Log4j2-2 TRACE IfLastModified REJECTED: app-2016-01-16-14-24-59.log ageMillis '60018' < 'PT3M'2016-01-16 14:26:23,206 Log4j2-2 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-24-59.log2016-01-16 14:26:23,206 Log4j2-2 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-23-59.log'2016-01-16 14:26:23,207 Log4j2-2 TRACE IfLastModified REJECTED: app-2016-01-16-14-23-59.log ageMillis '173740' < 'PT3M'2016-01-16 14:26:23,207 Log4j2-2 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-23-59.loglog iteration: 42016-01-16 14:27:23,200 main TRACE PatternProcessor.getNextTime returning 2016/01/16-14:28:00.000, nextFileTime=2016/01/16-14:27:59.000, prevFileTime=2016/01/16-14:26:59.000, current=2016/01/16-14:27:23.200, freq=EVERY_SECOND2016-01-16 14:27:23,201 main TRACE DefaultRolloverStrategy.purge() took 0.0 milliseconds2016-01-16 14:27:23,202 main DEBUG RollingFileManager executing synchronous FileRenameAction[c:templogapp.log to c:templogapp-2016-01-16-14-26-59.log, renameEmptyFiles=false]2016-01-16 14:27:23,204 main DEBUG RollingFileManager executing async CompositeAction[DeleteAction[basePath=c:templog, options=[], maxDepth=1, conditions=[IfFileName(glob:app-*.log), IfLastModified(age=PT3M)]]]2016-01-16 14:27:23,205 Log4j2-3 DEBUG Starting DeleteAction[basePath=c:templog, options=[], maxDepth=1, conditions=[IfFileName(glob:app-*.log), IfLastModified(age=PT3M)]]2016-01-16 14:27:23,207 Log4j2-3 DEBUG DeleteAction complete in 0.001230382 seconds2016-01-16 14:27:23,207 Log4j2-3 TRACE Sorted paths:2016-01-16 14:27:23,207 Log4j2-3 TRACE c:templogapp.log (modified: 2016-01-16T05:27:23.20571Z)2016-01-16 14:27:23,208 Log4j2-3 TRACE c:templogapp-2016-01-16-14-26-59.log (modified: 2016-01-16T05:26:23.946671Z)2016-01-16 14:27:23,208 Log4j2-3 TRACE c:templogapp-2016-01-16-14-25-59.log (modified: 2016-01-16T05:25:30.832634Z)2016-01-16 14:27:23,209 Log4j2-3 TRACE c:templogapp-2016-01-16-14-24-59.log (modified: 2016-01-16T05:25:23.188525Z)2016-01-16 14:27:23,209 Log4j2-3 TRACE c:templogapp-2016-01-16-14-23-59.log (modified: 2016-01-16T05:23:29.466887Z)2016-01-16 14:27:23,210 Log4j2-3 TRACE IfFileName REJECTED: 'glob:app-*.log' does not match relative path 'app.log'2016-01-16 14:27:23,210 Log4j2-3 TRACE Not deleting base=c:templog, relative=app.log2016-01-16 14:27:23,211 Log4j2-3 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-26-59.log'2016-01-16 14:27:23,211 Log4j2-3 TRACE IfLastModified REJECTED: app-2016-01-16-14-26-59.log ageMillis '59265' < 'PT3M'2016-01-16 14:27:23,211 Log4j2-3 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-26-59.log2016-01-16 14:27:23,212 Log4j2-3 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-25-59.log'2016-01-16 14:27:23,212 Log4j2-3 TRACE IfLastModified REJECTED: app-2016-01-16-14-25-59.log ageMillis '112380' < 'PT3M'2016-01-16 14:27:23,212 Log4j2-3 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-25-59.log2016-01-16 14:27:23,213 Log4j2-3 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-24-59.log'2016-01-16 14:27:23,213 Log4j2-3 TRACE IfLastModified REJECTED: app-2016-01-16-14-24-59.log ageMillis '120025' < 'PT3M'2016-01-16 14:27:23,213 Log4j2-3 TRACE Not deleting base=c:templog, relative=app-2016-01-16-14-24-59.log2016-01-16 14:27:23,214 Log4j2-3 TRACE IfFileName ACCEPTED: 'glob:app-*.log' matches relative path 'app-2016-01-16-14-23-59.log'2016-01-16 14:27:23,214 Log4j2-3 TRACE IfLastModified ACCEPTED: app-2016-01-16-14-23-59.log ageMillis '233748' >= 'PT3M'2016-01-16 14:27:23,214 Log4j2-3 TRACE Deleting c:templogapp-2016-01-16-14-23-59.log
您可以启用状态日志记录并显示输出吗?



