[ https://issues.apache.org/jira/browse/LOG4J2-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16755012#comment-16755012 ]
ASF subversion and git services commented on LOG4J2-1906: --------------------------------------------------------- Commit 349c91dc8c2d9318a296320f178be3208ef432e4 in logging-log4j2's branch refs/heads/release-2.x from rgoers [ https://gitbox.apache.org/repos/asf?p=logging-log4j2.git;h=349c91d ] LOG4J2-1906 - Delay file name resolution closer to when the stream is opened > DirectWriteRolloverStrategy not properly creating files > ------------------------------------------------------- > > Key: LOG4J2-1906 > URL: https://issues.apache.org/jira/browse/LOG4J2-1906 > Project: Log4j 2 > Issue Type: Bug > Affects Versions: 2.8.2 > Reporter: João Santos > Assignee: Ralph Goers > Priority: Major > Fix For: 3.0.0, 2.11.2 > > > The DirectWriteRolloverStrategy is not properly determining the filename of > the new log file after the rollover happens. > With the following configuration: > {noformat} > <RollingFile name="ApplicationLog" > filePattern="application.log.%d{yyyy-MM-dd-HH-mm}"> > <PatternLayout> > <Pattern>%m%n</Pattern> > </PatternLayout> > <Policies> > <TimeBasedTriggeringPolicy /> > <SizeBasedTriggeringPolicy /> > </Policies> > <DirectWriteRolloverStrategy /> > </RollingFile> > {noformat} > What is happening is, for instance: > - application starts at 09h35m30s > - at instant 09h35m55s a new log is written the rollover is set to happen at > 09h36m00s, log line is written to application.log.2017-05-10-09-35 - OK > - at instant 09h36m05s a new log is written and the rollover is triggered, > after the rollover logs are written to application.log.2017-05-10-09-35 - Not > OK > - at instant 09h37m05s a new log is written and the rollover is triggered, > after the rollover logs are written to application.log.2017-05-10-09-36 - Not > OK > This seems to be happening because > DirectWriteRolloverStrategy.getCurrentFileName (when being called from > createFileAfterRollover) is calling the PatternProcessor.formatFileName and > telling it to use the currentTime. However, currentFileTime is zero, and it > will fallback to the prevFileTime to determine the filename, which is wrong > as it will be one minute before current time. > It should probably either use the nextFileTime (while debugging I could see > that it was set to the correct time, the minute I expect the file to > rollover), or use the System time. -- This message was sent by Atlassian JIRA (v7.6.3#76005)