You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Bohdan Mushkevych (JIRA)" <ji...@apache.org> on 2014/03/24 18:48:45 UTC

[jira] [Comment Edited] (LOG4J2-551) TimeBasedTriggeringPolicy is not triggering file roll-over

    [ https://issues.apache.org/jira/browse/LOG4J2-551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13945412#comment-13945412 ] 

Bohdan Mushkevych edited comment on LOG4J2-551 at 3/24/14 5:48 PM:
-------------------------------------------------------------------

I believe this issue was caused by having NO time-based pattern in the: RollingFile -> PatternLayout
Having time-based pattern in the filename only is not sufficient for the log4j2 to roll-over the file, should the time-period change.

In summary to address this issue, I used following steps:
- removed time-based pattern from the filename
- added time-based pattern to the RollingFile -> PatternLayout
- replaced ${date:yyyyMMdd} with the %d{yyyyMMdd}

Resulting .xml:

{code:xml}
    <Properties>
        <Property name="routing_filename">${log.path}/table-$${sd:type}.log</Property>
    </Properties>
        <Routing name="Routing">
            <Routes pattern="$${sd:type}">
                <Route>
                    <RollingFile name="RollingFile-${sd:type}"
                                 fileName="${routing_filename}"
                                 filePattern="${log.path}/%d{yyyyMMdd}/%d{yyyyMMddHH}-${sd:type}-${hostName}.%i.log.gz">
                        <PatternLayout>
                            <Pattern>%d{yyyyMMddHH},%K{v}%n</Pattern>
                        </PatternLayout>
                        <Policies>
                            <TimeBasedTriggeringPolicy interval="1"/>
                            <SizeBasedTriggeringPolicy size="64 MB"/>
                        </Policies>
                        <DefaultRolloverStrategy max="999"/>
                    </RollingFile>
                </Route>
            </Routes>
        </Routing>
{code}


was (Author: mushkevych):
I believe this issue was caused by having NO time-based pattern in the: RollingFile -> PatternLayout
Having time-based pattern in the filename only is not sufficient for the log4j2 to roll-over the file, should the time-period change.

In summary to address this issue, I used following steps:
- removed time-based pattern from the filename
- added time-based pattern to the RollingFile -> PatternLayout
- replaced ${date:yyyyMMdd} with the %d{yyyyMMdd}

Resulting .xml:

{code:xml}

    <Properties>
        <Property name="routing_filename">${log.path}/table-$${sd:type}.log</Property>
    </Properties>
        <Routing name="Routing">
            <Routes pattern="$${sd:type}">
                <Route>
                    <RollingFile name="RollingFile-${sd:type}"
                                 fileName="${routing_filename}"
                                 filePattern="${log.path}/%d{yyyyMMdd}/%d{yyyyMMddHH}-${sd:type}-${hostName}.%i.log.gz">
                        <PatternLayout>
                            <Pattern>%d{yyyyMMddHH},%K{v}%n</Pattern>
                        </PatternLayout>
                        <Policies>
                            <TimeBasedTriggeringPolicy interval="1"/>
                            <SizeBasedTriggeringPolicy size="64 MB"/>
                        </Policies>
                        <DefaultRolloverStrategy max="999"/>
                    </RollingFile>
                </Route>
            </Routes>
        </Routing>

{code}

> TimeBasedTriggeringPolicy is not triggering file roll-over
> ----------------------------------------------------------
>
>                 Key: LOG4J2-551
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-551
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-rc1
>            Reporter: Bohdan Mushkevych
>         Attachments: log4j2.xml
>
>
> I am using log4j 2.0-rc1, StructuredDataMessage and EventLogger to perform dynamic logging.
> Attached log4j2.xml configuration meant to:
> - rotate log files on hourly basis OR after file reaches 64 MB (whatever comes first)
> - archive logs that does not satisfy the file pattern
> However, logging is performed on an "old" log minutes after new hour triggers:
> -rw-r--r--. 1 root root    96195 Feb 24 20:16 2014022419-guid_info-mdmlocal.mobidia.com.log
> -rw-r--r--. 1 root root   827184 Feb 24 20:16 2014022419-checkin-mdmlocal.mobidia.com.log
> Listing above shows, that last logging was performed to file 2014022419-*** 16 minutes after filename was supposed to be changed to 2014022420-***



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org