我有一个配置为...的appender
<appender name="DAILY_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>logs/dm.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/dm.%d{yyyyMMdd}.log</FileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%m%n</pattern>
</encoder>
</appender>
...
<root level="info">
<appender-ref ref="DAILY_ROLLING" />
<appender-ref ref="SYSLOG" />
</root>
...通常具有将当前数据记录到dm.log文件的效果,并且每天午夜将dm.log滚动到以日期dm.20130205.log命名的文件中。然而,昨天,有史以来第一次没有发生这种翻滚。我的dm.log文件现在有2天的数据,我想知道出了什么问题?我希望找到一个RolloverFailure或者说明在dm.log文件中存在什么问题,但那里什么都没有。
我想在哪里找出回滚出了什么问题?我从未见过这种机制在logback或log4j中都失败了。
答案 0 :(得分:1)
尝试添加:
-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener
或者实现您自己的状态监听器的事件。然后尝试在测试系统中每隔10秒配置一次文件滚动,并让它进行浸泡测试。
这可能是一个NAS问题。我们已经让我们的NAS无声地失败,难以察觉。此外,如果文件滚入时间是半夜,而且它是隔夜批处理系统,则此时NAS负载可能很高。
您使用的是什么版本的logback?
编辑:如果文件的重命名失败,则可以跳过翻转。在我自己的代码中,我会重试这个,但是在RenameUtil.rename()中,logback将通过状态监听器警告你。