Russ created LOG4J2-1978:
----------------------------
Summary: Dated rolling files are incorrectly labeled with the
date/time segment of the future iteration
Key: LOG4J2-1978
URL: https://issues.apache.org/jira/browse/LOG4J2-1978
Project: Log4j 2
Issue Type: Bug
Components: Appenders
Affects Versions: 2.8.2
Reporter: Russ
Referencing feature LOG4J2-1101 .. which was added in version 2.8.
Using the following example of a "daily rolling file" ...
* FilePattern: App_%d{yyyy-MM-dd}.log
* log entries for the date: (ie.) 2017-12-01 (note: the day is the 1st)
* are logged in base file named: (ie.) App_2017-12-01.log (note: the day is the
1st)
* When rolled at midnight .. (now) 2017/12/02 (note: the day is now the 2nd)
* Log entries of 2017-12-01 are now stored in a file name App_2017-12-02.log
(note: the day on the file is the 2nd)
This occurs similarly at any level of granularity, of the date/time iteration.
For instance..
* with a FilePattern (focusing on the date pattern specifically) of:
%d{yyyy-MM-dd_HH-mm}
* log entries for: 2017-12-01_08-30
* will be in the rolled file: 2017-12-01_08-31
Additionally, this flaw affects the first roll over iteration, where the first
iteration doesn't roll (on the first midnight), but does roll on subsequent
iterations. For instance..
* with a FilePattern (focusing on the date pattern specifically) of:
%d{yyyy-MM-dd}
* log entries for: 2017-12-01 (the app start date)
* the roll does not occur at midnight.. which is now: 2017-12-02
This results in the log file dated for the 1st, having entries for both the 1st
and 2nd
* then on the 3rd, the log rolls, resulting in a rolled log dated: 2017-12-03,
containing entries for both the 1st and 2nd
* Moving forward .. entries for the 3rd will be rolled into a log dated
2017-12-04 .. so on and so forth
Example log4j2.xml property file:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" monitorInterval="30">
<Properties>
<Property name="FilePattern">App_%d{yyyy-MM-dd}.log</Property>
<Property name="PatternLayout">%x%X
[%d{DEFAULT}][%-20t]%-5p(%-40.40C{3}:%-3L) - %m%n</Property>
</Properties>
<Appenders>
<Console name="console-log" target="SYSTEM_OUT">
<PatternLayout pattern="${PatternLayout}"/>
</Console>
<RollingFile name="file-log" filePattern="${FilePattern}" bufferedIO="true"
immediateFlush="true">
<PatternLayout pattern="${PatternLayout}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DirectWriteRolloverStrategy maxFiles="10"/> <!-- maxFiles attribute does
not appear to work - older files are not being deleted -->
</RollingFile>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="console-log"/>
<AppenderRef ref="file-log"/>
</Root>
</Loggers>
</Configuration>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)