[
https://issues.apache.org/jira/browse/LOG4J2-2804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17054949#comment-17054949
]
André Pinto commented on LOG4J2-2804:
-------------------------------------
Using currentTime for formatFileName calls in
https://github.com/apache/logging-log4j2/blob/master/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
seems to provide the expected behaviour for both time based and size based
roll overs. Not really sure why currentTime is not being used at the moment so
I don't know if it would break something else.
> RollingRandomAccessFile uses wrong time for filename
> ----------------------------------------------------
>
> Key: LOG4J2-2804
> URL: https://issues.apache.org/jira/browse/LOG4J2-2804
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.13.1
> Reporter: André Pinto
> Priority: Major
>
> When there are both size based and time based triggering policies, if the
> size based policy is triggered, the file is named as if the time based policy
> was triggered.
> Example config:
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="WARN" name="Mux">
> <Properties>
> <Property name="LOG_DIR">logs</Property>
> </Properties>
> <Appenders>
> <Console name="Console" target="SYSTEM_OUT"/>
> <RollingRandomAccessFile name="main"
> fileName="${LOG_DIR}/main-current.log-active"
>
> filePattern="${LOG_DIR}/main-%d{yyyy-MM-dd-HH.mm.ss}.log"
> ignoreExceptions="false"
> immediateFlush="false"
> bufferSize="1048576">
> <PatternLayout>
> <Pattern>%m\n</Pattern>
> </PatternLayout>
> <Policies>
> <SizeBasedTriggeringPolicy size="256 B" />
> <TimeBasedTriggeringPolicy interval="3600" />
> </Policies>
> <DefaultRolloverStrategy fileIndex="nomax" />
> </RollingRandomAccessFile>
> </Appenders>
> <Loggers>
> <Root level="OFF">
> <AppenderRef ref="Console" />
> </Root>
> <Logger name="main" level="ALL" additivity="false">
> <AppenderRef ref="main"/>
> </Logger>
> </Loggers>
> </Configuration>
> {code}
> With this configuration if I start writing log entries to the "main" logger
> at 2020-03-09 13:00.00 and immediately trigger the SizeBasedTriggeringPolicy
> (256 bytes), the name of the file that is rolled over will be:
> main-2020-03-09-14.00.00
> as if the rollover operation had been triggered by the time policy.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)