[ 
https://issues.apache.org/jira/browse/LOG4J2-2804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

André Pinto updated LOG4J2-2804:
--------------------------------
    Description: 
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.


  was:
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 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.



> 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)

Reply via email to