log4j2 RollingFile Appender一次只有一行

时间:2013-03-04 20:18:59

标签: java logging log4j2

我正在使用以下log4j2.xml文件:

<configuration>
    <appenders>
        <RollingFile name="logfile" fileName="C:/opt/log/views/views.log"
                     filePattern="C:/opt/log/views/views.%d{yyyy-ww}.log.gz">
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="3" />
            <PatternLayout pattern="%d{ISO8601} VIEWS[%p][%c]...." />
        </RollingFile>
    </appenders>
    <loggers>
        <root level="TRACE">
            <appender-ref ref="logfile" />
        </root>
    </loggers>
</configuration>

当我拖尾文件并启动服务器时,我会得到一条日志消息。它没有附加,而是用每个新行替换文件中的唯一行。我对此感到有些困惑,希望有人以前见过这个。提前谢谢。

2 个答案:

答案 0 :(得分:1)

据我所知,您的配置没有任何问题(至少在我的机器上它按预期工作)。

问题可能出在这种模式中:

%d{ISO8601} VIEWS[%p][%c]....

你最后错过了%n(换行符),所以所有内容都有效地写在同一行。

答案 1 :(得分:0)

花了一些时间完全相同的问题。我现在确信log4j2(beta9)中TimeBasedTriggeringPolicy可以处理的最大时间是一天,而不是(比如在你的配置中)一周或一个月。

测试它:将配置更改为

 <RollingFile name="logfile" fileName="C:/opt/log/views/views.log"
     filePattern="C:/opt/log/views/views.%d{yyyy-MM-dd}.log.gz">

它应该神奇地工作。

这已经被报告为错误,但是(截至今天)未修复:https://issues.apache.org/jira/browse/LOG4J2-385