[ 
https://issues.apache.org/jira/browse/LOG4J2-3432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17506621#comment-17506621
 ] 

Gary D. Gregory commented on LOG4J2-3432:
-----------------------------------------

I asked because the current version should be the baseline for fixing bugs or 
improving documentation.

> 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
>         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.1#820001)

Reply via email to