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

[jira] [Created] (LOG4J2-1946) DefaultRolloverStrategy is failing if some log file is deleted from the current sequence

Lucio Farinosi created LOG4J2-1946:
--------------------------------------

             Summary: DefaultRolloverStrategy is failing if some log file is deleted from the current sequence
                 Key: LOG4J2-1946
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1946
             Project: Log4j 2
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.8.2
            Reporter: Lucio Farinosi


A wrong behaviour in rollover strategy has been reported to me today which is related to a problem on the DefaultRolloverStrategy.
The case specific settings are:
- RollingRandomAccessFile appender
- SizeBasedTriggeringPolicy set to 1MB
- DefaultRolloverStrategy with max set to 20
- filePattern without date (i.e. C:/log/test.log.%i)

When the rollover action begins (the moment the 20th file is completed) if someone deletes one of more files from the current sequence (for example test.log.8 and/or test.log.9 or whatever) the purgeAscending method is failing in engaging the rollover actions in the correct way and this results in a rollover effect limited only to 2 files (the other files are not updated anymore - in a similar way already observed and fixed in https://issues.apache.org/jira/browse/LOG4J2-1821).

I managed to reproduce the problem in the attached simple project, even in single threaded execution.
Note that I managed to workaround the problem adding a fake fileIndex to the appender appender.R.strategy.fileIndex=xxxx which results in engaging the purgeDescending method of the same class which is working fine.

The completed log4j2.properties file is listed below. 
status=INFO
monitorInterval=5
appender.R.type=RollingRandomAccessFile
appender.R.name=R
appender.R.fileName=C:/log/test.log
appender.R.layout.type=PatternLayout
appender.R.layout.pattern=%d{dd-MM-yyyy HH:mm:ss,SSS} [%mdc] %p %c{1.} [%t] %m %ex%n
appender.R.filePattern=C:/log/test.log.%i
appender.R.policies.type=Policies
appender.R.policies.size.type=SizeBasedTriggeringPolicy
appender.R.policies.size.size=1MB
appender.R.strategy.type=DefaultRolloverStrategy
appender.R.strategy.max=20
rootLogger.level=INFO
rootLogger.appenderRef.R.ref=R

#added to workaround the issue
#appender.R.strategy.fileIndex=xxxx

Could you please check it out and/or advise accordingly?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)