You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "André Pinto (Jira)" <ji...@apache.org> on 2020/03/09 12:59:00 UTC

[jira] [Updated] (LOG4J2-2804) RollingRandomAccessFile uses wrong time for filename

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