TimeBasedRollingPolicy昨天未能翻转日志文件,但我看不到翻转失败?

时间:2013-02-06 18:30:43

标签: logback

我有一个配置为...的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中都失败了。

1 个答案:

答案 0 :(得分:1)

尝试添加:

-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener

或者实现您自己的状态监听器的事件。然后尝试在测试系统中每隔10秒配置一次文件滚动,并让它进行浸泡测试。

这可能是一个NAS问题。我们已经让我们的NAS无声地失败,难以察觉。此外,如果文件滚入时间是半夜,而且它是隔夜批处理系统,则此时NAS负载可能很高。

您使用的是什么版本的logback?

编辑:如果文件的重命名失败,则可以跳过翻转。在我自己的代码中,我会重试这个,但是在RenameUtil.rename()中,logback将通过状态监听器警告你。