Логбэк версии 1.2.3
Я хочу использовать SizeAndTimeBasedRollingPolicy в нашем файле конфигурации журнала (logback.xml), но в настоящее время SizeAndTimeBasedRollingPolicy не работает должным образом. (https://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy)
В идеале я хочу хранить журналы не позднее, чем ex. 90 дней, размер каждого файла не более 100 МБ и общий размер архива напр. всего 10гб.
В настоящее время totalSizeCap применяется к каждой записи в пределах диапазона MaxHistory. Бывший.
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>100MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
Вышеупомянутая конфигурация XML будет создавать журналы, охватывающие более 60 дней, применяя totalSizeCap 1 ГБ в день. Это приведет к тому, что общий размер архива составит 60 ГБ вместо ожидаемого 1 ГБ. Если totalSizeCap будет достигнут в течение дня, дневные журналы начнут обновляться путем удаления самых старых файлов за день, это создаст пробелы в истории журналов, чего мы не хотим. Обходной путь для этой ошибки заключался в использовании ежегодного переноса вместо ежедневного или ежемесячного переноса, к сожалению, годовой перенос не работает при использовании SizeAndTimeBasedRollingPolicy.
Кто-нибудь знает об этой проблеме, это было исправлено, или я делаю что-то не так в своей конфигурации?