[
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]