我有一个使用 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 代码从未被触发,因此日志文件增长超过 2MB(这不是我想要的)。
我是 LogBack 的新手 - 任何帮助将不胜感激。