Javaアプリケーションを起動すると、logbackがログファイルへの書き込みを拒否することがあります。また、深夜(または深夜以降の最初のログイベント)にログファイルのロールを拒否することもあります。その結果、ログイベントが無効になります。ログバックがログのロールに失敗したときにメインログファイルを見ると、昨日の日付で23:59のような時間があり、それ以降のすべてのログステートメントは取り返しのつかないほど失われます。私はかなり単純な構成ファイルを持っています、そしてそれは正しいように見えます。ほとんどの場合機能するので、確かに正しいはずです。
これが私の設定ファイルです:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<append>true</append>
<File>aggregator.log</File>
<encoder>
<!-- was: %d{yyyy-MM-dd HH:mm:ss}%5p [%t] (%F:%L) - %msg%n -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] \(%class{25}:%line\) - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- By setting the name to .gz here, we get free compression. -->
<fileNamePattern>aggregator.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] \(%class{25}:%line\) - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="file"/>
<appender-ref ref="console"/>
</root>
</configuration>
残念ながら、このエラーを確実に再現することはできないため、デバッグは少し困難です。誰かが私が間違っていること、または他に何が問題である可能性があるかを教えてもらえますか?何か助けがあれば、STDOUTとSTDERRを/ dev / nullにリダイレクトします(Linuxで実行しています、ところで)。