log4j2:TimeBasedTriggeringPolicy未触发文件翻转

时间:2014-02-19 20:31:50

标签: java log4j2

我正在使用log4j 2.0-rc1,StructuredDataMessage和EventLogger来执行动态日志记录。

log4j2.xml配置意味着:

  • 每小时轮换日志文件或文件达到64 MB后(无论先出现什么情况)
  • 归档不满足文件模式的日志

                      

    <Routing name="Routing">
        <Routes pattern="$${sd:type}">
            <Route>
                <RollingFile name="RollingFile-${sd:type}"
                             fileName="${log.path}/${date:yyyyMMdd}/${date:yyyyMMddHH}-${sd:type}-${hostName}.log"
                             filePattern="${log.path}/%d{yyyyMMdd}/%d{yyyyMMddHH}-${sd:type}-${hostName}.%i.log.gz">
                    <PatternLayout>  
                        <!-- %K{v} stands for the message passed in StructuredDataMessage map with key "v" -->
                        <!-- %n stands for new line -->
                        <Pattern>%K{v}%n</Pattern>
                    </PatternLayout>
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1"/>
                        <SizeBasedTriggeringPolicy size="64 MB"/>
                    </Policies>
                    <DefaultRolloverStrategy max="999"/>
                </RollingFile>
            </Route>
        </Routes>
    </Routing>
    

                      

    <Root level="warn">
        <AppenderRef ref="STDOUT"/>
    </Root>
    

     

有两个问题:

  1. 在新小时触发后几分钟,在“旧”日志文件上执行日志记录:

    Feb 19 20:13 2014021919-planoperator-mdmlocal.mobidia.com.log
    2月19日20:13 2014021919-planprogress-mdmlocal.mobidia.com.log
    2月19日20:13 2014021919-planstats-mdmlocal.mobidia.com.log
    2月19日20:08 2014021919-sim-mdmlocal.mobidia.com.log

  2. 每当JVM重新启动时,log4j都会放弃未归档的“旧”文件

    Feb 19 20:13 2014021919-planstats-mdmlocal.mobidia.com.log
    2月19日20:29 2014021920-planstats-mdmlocal.mobidia.com.log

1 个答案:

答案 0 :(得分:1)

您提到的第一个问题可能是一个已知问题:https://issues.apache.org/jira/browse/LOG4J2-520 - 如果这不能涵盖您所看到的内容,请随时添加另一个故障单。 (在这种情况下,请提及重现的步骤,实际发生的事情以及您希望发生的事情。越详细,越好。)

关于第二个问题(log4j放弃了未归档的旧文件),您可以在Log4J2问题跟踪器中为此创建一个票证吗?