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

Karsten Stöckmann commented on LOG4J2-116:
------------------------------------------

This still seems to be an issue in 2.1, or am I getting something wrong here?

{code:xml}
<RollingFile name="ROLLING" ... fileName="test.log" 
filePattern="test.log.%d{yyyyMMdd-HHmm}.gz">
    <PatternLayout pattern="..." />
    <OnStartupTriggeringPolicy />
</RollingFile>
{code}

I'd expect rolled files retain their original timestamp in the pattern, i.e. a 
log file created originally on Nov *24* and rolled over the following day be 
named something like _test.log.201411{color:blue}24{color}\-....gz_ instead of 
_test.log.201411{color:red}25{color}\-....gz_.

> 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
>            Assignee: Ralph Goers
>             Fix For: 2.0-beta4
>
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to