ログに LogBack ライブラリを使用する Android アプリがあります。2MB に達したら、ログ ファイルを削除する必要があります (ローテーションする必要はありません)。
ここに私の設定ファイルがあります:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/mnt/sdcard/app/app.log</file>
<append>true</append>
<triggeringPolicy class="com.app.utils.LogbackSizeBasedTriggeringPolicy">
<maxFileSize>2MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
ご覧のとおり、SizeBasedTriggeringPolicy (http://jira.qos.ch/browse/LOGBACK-74) にバグがあるように見えるため、独自のトリガー コードを作成しました。
package com.app.utils;
import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;
import ch.qos.logback.core.util.FileSize;
public class LogbackSizeBasedTriggeringPolicy<E> extends
SizeBasedTriggeringPolicy<E> {
@Override
public boolean isTriggeringEvent(File activeFile, E event) {
return activeFile.length() >= FileSize.valueOf(getMaxFileSize())
.getSize();
}
}
ロギングは正常に機能しますが、triggeringPolicy コードは起動されないため、ログ ファイルが 2 MB を超えて大きくなります (これは私が望んでいるものではありません)。
私は LogBack を初めて使用します。