Log4j2 - Asynclogger Rolling File Appender每小时不滚动

时间:2014-06-05 04:01:59

标签: java logging log4j log4j2

这是我的log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">

    <Appenders>
            <!-- Generate STDOUT in console -->
            <Console name="CONSOLE" target="SYSTEM_OUT">
                    <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
            </Console>

            <!-- Generate rolling log for router with per hour interval policy -->
            <RollingFile name="RouterRollingFile" fileName="/apps/bea/mb-logs/router.log"
                     immediateFlush="false" filePattern="/apps/bea/mb-logs/router.%d{yyyy-MM-dd-HH}-%i.log">
                    <PatternLayout>
                            <pattern>%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%n</pattern>
                    </PatternLayout>
                    <Policies>
                            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                    </Policies>
                    <!-- <DefaultRolloverStrategy fileIndex="max" max="24" /> -->
            </RollingFile>
    </Appenders>

    <Loggers>
            <AsyncLogger name="com.tritronik.mb.router" level="info"
                    additivity="false" includeLocation="true">
                    <AppenderRef ref="RouterRollingFile" />
            </AsyncLogger>
            <!-- <Root level="info">
                    <appender-ref ref="CONSOLE" />
            </Root> -->
    </Loggers>

我想实现每小时滚动的每日滚动文件,到目前为止,我还没有能够以适当的格式生成日志,而且我记得,interval参数似乎是按天增加而不是小时。

我想实现这个目标

router.log - &gt;目前编写的文件

router.log.2014-06-20-00

router.log.2014-06-20-01

...

router.log.2014-06-20-23

router.log.2014-06-21-00

...

相反,我实现了这个

router.log

router.log.2014-06-20-1 - &gt;一天的日志

我已经能够使用通常的log4j做到这一点,但io性能下降并迫使我使用log4j2,但我偶然发现了这个问题。

我哪里错了?或者log4j2不支持这个吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可能发现了一个错误。

这只发生在异步记录器上,还是配置普通(同步)记录器时?

另外,您是否尝试过使用如下所示的filePattern: filePattern="/apps/bea/mb-logs/$${date:yyyy-MM-dd}/router.%d{yyyy-MM-dd-HH}.log"? 我有一种(公认的含糊不清)怀疑$$ {date:...}部分可能是相关的。

如果以上两者都没有任何区别,请你在log4j2问题跟踪器上提交一张Jira票吗? https://issues.apache.org/jira/browse/LOG4J2