[
https://issues.apache.org/jira/browse/LOG4J2-2039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16158747#comment-16158747
]
Ralph Goers commented on LOG4J2-2039:
-------------------------------------
I will take a look. Rolling file appender used to use max files as the
indicator to find all the files during rollover. But if you had a max files
value of 999 then it was trying to look at 1000 files every rollover, which
took forever. It now only inspects the files that are actually in the
directory. But we should certainly handle the case where the file name has an
error and ignore the file.
> File rollover fails with error due to invalid previous file log names
> ---------------------------------------------------------------------
>
> Key: LOG4J2-2039
> URL: https://issues.apache.org/jira/browse/LOG4J2-2039
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.8.2
> Reporter: Leon Finker
> Assignee: Ralph Goers
>
> Hi,
> Not sure if you want to fix this or not. I noticed the following error and
> logs fail to rollover and causes a problem. It could cause a problem i guess
> if someone makes some kind of mistake of file suffix during support. Maybe
> you want to just skip those invalid files? It seems like it was a recent
> log4j2 change (maybe 2.8.x) since these files have been there since 2016 and
> previous log4j2 versions didn't complain. Looks like maybe support renamed
> some previous log files to have unix system time in the suffix like
> file.log.1457052422478.
> {noformat}
> 2017-09-08 09:31:01,111 Log4j2-TF-1-AsyncLogger[AsyncContext@33909752]-1
> ERROR An exception occurred processing Appender AppLogFile
> java.lang.NumberFormatException: For input string: "1457052422478"
> at
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
> at java.lang.Integer.parseInt(Integer.java:583)
> at java.lang.Integer.parseInt(Integer.java:615)
> at
> org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:130)
> at
> org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:98)
> at
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purgeDescending(DefaultRolloverStrategy.java:269)
> at
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purge(DefaultRolloverStrategy.java:199)
> at
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.rollover(DefaultRolloverStrategy.java:326)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:362)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:278)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.checkRollover(RollingFileManager.java:218)
> at
> org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:207)
> at
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:448)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:433)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)
> at
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:79)
> at
> org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:337)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:161)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:45)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
> at
> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:129)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)