2017-03-24 30 views
3

私は以下のアペンダーを使用しています。ログバックでは、1時間ごとのロールバック中にMaxHistoryより前のログが削除されます

しかし、私は<maxHistory>を10日と述べました。しかし、私はログが毎日の終わりにログバックによって自動的に削除されるのを見ることができました。

ただし、ログファイルを最大10日間保存することをお勧めします。

<appender name="TIME_BASED_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>c:/logs/timeBasedlogFile.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">   
     <fileNamePattern>c:/logs/timeBasedlogFile.%d{yyyy-MM-dd_HH}.log</fileNamePattern> 
     <maxHistory>10</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
    </encoder> 
</appender> 

私はその後、私はロールオーバーログが<maxHistory>

に言及した日数の間維持されている見ることができる毎日ロールオーバーを使用する場合はない唯一の毎日のロールオーバーのmaxHistory仕事?

答えて

4

maxHistory要素は、履歴へのロールファイルの数を指定します。
<maxHistory>10</maxHistory>を選択すると、10個のファイルの履歴がある可能性があります。

場合によっては、ローリングの細分度として時間を指定します。これは、アプリケーションが1時間ごとにログを記録し、10時間後に履歴がいっぱいになり、古い履歴ログが消去されることを意味します。

時間のローリングファイルの設定では、履歴が正確には10日であることは、アプリケーションが数時間から数日も外れる可能性があるため、明らかではありません。

実際、1時間の細分性を維持したい場合は、履歴を時間単位で指定し、日単位で指定する必要があります。両方を調整する必要があります。

たとえば、アプリケーションが12時間稼働していると考えると、history値(12時間×10日間)として、120を指定すると、10日間に近い値が得られます。
ログの頻度をマスターしておらず、履歴が10日未満でないことを確認したい場合は、240history値(24時間* 10日)として使用してください。
単一の欠点:アプリケーションが毎日の1時間ごとにログを記録しない場合は、必要に応じてより多くの履歴を取得します。

私は毎日ロールオーバーを使用する場合、私はロールオーバーログと説明しているため<maxHistory>

はいで述べた日数にわたって維持 あり、maxHistory値の粒度は依存見ることができましたローリング時間の粒度。

+0

ありがとうございました。 を240(10日* 24時間)にしておくとうまくいく –

+0

ログバックは240時間後でもファイルを削除しない(つまり10日を意味する)? –

関連する問題