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