[
https://issues.apache.org/jira/browse/LOG4J2-3432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ralph Goers resolved LOG4J2-3432.
---------------------------------
Fix Version/s: 2.18.0
Resolution: Fixed
I've pushed a fix. Please verify and close.
> RollingFileAppender fails after 100 backup cycles if filePattern contains
> "%04i" .
> ----------------------------------------------------------------------------------
>
> Key: LOG4J2-3432
> URL: https://issues.apache.org/jira/browse/LOG4J2-3432
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.17.1, 2.17.2
> Environment: * Red Hat Enterprise Linux Server release 6.10 (Santiago)
> * java version "1.8.0_181"
> Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
> * 301873 Mar 9 07:53 log4j-api-2.17.1.jar
> 1790452 Mar 9 07:53 log4j-core-2.17.1.jar
>
> Reporter: Carl Smotricz
> Assignee: Ralph Goers
> Priority: Major
> Fix For: 2.18.0
>
> Attachments: Main.java, log4j2.xml, runit.sh
>
>
> If a {{%i}} formatter in a filePattern includes a width specifier, e.g. "%4i"
> or "%04i", file renaming fails after a certain fixed number of cycles. After
> that, successive backups are renamed to the maximum cycle number and
> overwrite previous files of that same cycle number, regardless of min and max
> settings on the appender. Here are some failure modes I've found by testing:
> * if {{filePattern}} contains {{{}%06i{}}}, cycling breaks after 100.
> * if {{filePattern}} contains {{{}%006i{}}}, it breaks after 100 also.
> * if {{filePattern}} contains {{{}%6i{}}}, it breaks after 10.
> * if {{filePattern}} contains {{%06i}} and
> {{{}DefaultRolloverStrategy.min{}}}=10000, {{{}max{}}}=99999, it breaks after
> just 1.
> Now, the doc doesn't mention the %i spec supporting width and leading zero
> modifiers in the manner of printf() or String.format() . Yet, those
> variations (which I think other users will also be tempted to try) work -
> until they don't. So apparently width and padding on that spec are
> implemented but buggy.
> The doc for RollingRandomAccessFileAppender explicitly recommends these
> format modifiers:
> {quote}... and/or a %i which represents an integer counter. The integer
> counter allows specifying a padding, like %3i for space-padding the counter
> to 3 digits or (usually more useful) %03i for zero-padding the counter to 3
> digits.
> {quote}
> ...but I haven't verified that the problem occurs with that appender as well.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)