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

Ralph Goers commented on LOG4J2-116:
------------------------------------

I've actually known about this one for a while and it bothered me to, just not 
enough to fix it yet. It is annoying so I do intend to fix it. 
                
> RollingFileAppender archives have wrong date values
> ---------------------------------------------------
>
>                 Key: LOG4J2-116
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-116
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-beta2
>            Reporter: David Johle
>
> Suppose I have an appender configured like so:
> <RollingFile name="test"
>              fileName="logs/test"
>              filePattern="logs/test.%d{yyyy-MM-dd}">
>   <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %message%n"/>
>   <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
> </RollingFile>
> Supposed today is 2012-11-13, and thus tomorrow is 2012-11-14.
> I create several logging events today, and as expected they end up in a file 
> named "logs/test"
> Midnight goes by, and it is now the 14th.  Some more logging events occur 
> around 12:01 am.
> What I expect to see after this is:
> logs/test
> logs/test.2012-11-13
> What I actually end up seeing is:
> logs/test
> logs/test.2012-11-14
> So the archived entries of the 13th are in a file name matching the 14th.  
> That is quite confusing!
> I tested this with some other formats, and it seems that no matter what is 
> the most specific (day, hour, minute, etc.) field, it is always higher than 
> expected.
> I traced through the code, and the culprit seems to be in PatternProcessor:
>     protected final void formatFileName(final Object obj, final StringBuilder 
> buf) {
>         Object[] objects = new Object[] {new 
> Date(System.currentTimeMillis()), obj};
>         formatFileName(objects, buf);
>     }
> So the Date being used for the filename is the current time when the name is 
> computed, which is guaranteed to be within an interval that is after the one 
> of the file contents.  If I went a copule of intervals (in this case days) 
> without log events, then it could be stamped with a name that is several days 
> after the contents.
> In the latter case, I'm not sure if I'd expect to see a filename with the 
> 13th still, or maybe the 15th (assuming rollover happened during the 16th).  
> But in either case, I definitely don't expect to see a filename with the 
> 16th, which is what I'd get.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to