1

私は次のように構成されたアペンダーを持っています...

<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 日分のデータが含まれるようになりましたが、何が問題だったのでしょうか? dm.log ファイルに RolloverFailure または何が問題なのかを示す何らかの兆候があると予想していましたが、そこには何もありません。

logback で何が問題だったのかを調べるには、どこを見ればよいですか? このメカニズムが logback または log4j で失敗するのを見たことがありません。

4

1 に答える 1

1

追加してみてください:

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

または、独自のステータス リスナーを実装するイベント。次に、テスト システムで 10 秒ごとにファイル ロールを構成し、ソーク テストに任せます。

NASの問題かもしれません。私たちの NAS は、検出が困難な方法で静かに失敗しました。また、ファイルのロールインが真夜中に行われ、夜間のバッチ処理システムである場合、NAS の負荷はその時間に高くなる可能性があります。

どのバージョンのログバックを使用していますか?

編集:ファイルの名前変更が失敗した場合、ロールオーバーがスキップされる可能性があります。私自身のコードではこれを再試行しますが、RenameUtil.rename() logback では、ステータス リスナーを介して警告するだけです。

于 2013-02-18T15:43:01.250 に答える