2016-10-20 40 views
1

当社製品(ログバック1.1.3)でSizeAndTimeBasedRollingPolicy/SizeAndTimeBasedFNATPを使用しています。ここでlogback設定ファイルからスニップです:logback:SizeAndTimeBasedRollingPolicyは、4桁の "%i"のファイルを削除しません。

<appender name="SERVER_FILE" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${MY_LOGS}/myabc.log</file> 
    <append>true</append> 
    <!-- 
     Roll log file on both time (per day) and size (250mb). Gzip on roll. 
    --> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- location and name of rolled log files --> 
     <fileNamePattern>${MY_LOGS}/myabc-%d{yyyy-MM-dd}.%i.gz</fileNamePattern> 
     <!-- keep 30 days worth of history --> 
     <maxHistory>30</maxHistory> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <!-- whenever the file size reaches 250MB, roll it --> 
      <maxFileSize>250MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%thread] %-5level %logger{24} [%C{1}.%M]</pattern> 
    </encoder> 
</appender> 

は、ログファイルは次の名前持って生成された:myabc-2016-11-21.0.gzを、myabc-2016-11-21.1.gz、myabc -2016-11-21.2.gzなど

ログファイルの拡張子(%i)が3桁を超え、30日後に削除されない(maxHistory)という問題があります。たとえば、myabc-2016-11-21.0.gzは30日後に削除されますが、myabc-2016-11-21は削除されます。 .gzは削除されません。

拡張子が3桁以上のファイルも削除されることがあるかどうか、またはログバックのバグであることを確認するために、ログバック設定ファイルに追加する必要のある他のアペンダ/設定はありますか?

[私はlogback 1.1.7で試してみましたが、それは助けにはならなかった]私は同じ問題を抱えている

答えて

0

これはログバックのバグです。ここにはjiraがあり、ここに提案された修正(PR)があります。

1

を、ソースコード(バージョン1.2.3)

パッケージをlogbackに見えた - ch.qos

.logback.core.rolling.helperと buf.append("(\\d{1,3})");

がそう、それは1000が交換されていない1000以上のインデックスを持つこの間隔と新しいログファイルを超えて1-3桁の整数、にハードコードされ、このラインを見つけましたoファイルシステムに追加し続けます。

+0

ここにはバグがあります:https://jira.qos.ch/browse/LOGBACK-1217とPRを含む修正:https://github.com/qos-ch/logback/pull/338 –

関連する問題