You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by "Ralph Goers (JIRA)" <ji...@apache.org> on 2017/09/08 14:58:00 UTC

[jira] [Commented] (LOG4J2-2039) File rollover fails with error due to invalid previous file log names

    [ 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)