微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在android上设置日志文件最大大小

我正在使用microlog4android登录文件.问题是如何设置最大文件大小?

microlog4android FileAppender类有两个方法:getLogSize(总是返回-1)和clear.我可以在达到一定大小时清除日志,但getLogSize似乎不起作用.

有没有更好,更成熟的Android日志记录解决方案,我不知道?

解决方法:

您可以将logback-androidRollingFileAppenderSizeBasedTriggeringPolicy一起使用,但是您应该知道可能导致您的工作日志文件超过最大文件大小的bug(src).解决方法是将触发策略子类化以绕过该错误

package com.example;

import java.io.File;
import ch.qos.logback.core.util.FileSize;

public class SizeBasedTriggeringPolicy<E> extends ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy<E> {
    @Override
    public boolean isTriggeringEvent(final File activeFile, final E event) {
        return (activeFile.length() >= FileSize.valueOf(getMaxFileSize()).getSize());
    }
}

这是一个示例配置(基于Logback manual,包括上面的解决方法),您可以将其放入AndroidManifest.xml.我在Android 4.0.3模拟器中测试了这个,但我想它也适用于早期版本.

<logback>
    <configuration debug="true">
        <appender
                name="LOGCAT"
                class="ch.qos.logback.classic.android.LogcatAppender" >
            <encoder>
                <pattern>[%method] %msg%n</pattern>
            </encoder>
        </appender>

        <property name="dest.dir" value="/sdcard/test/" />
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${dest.dir}/test.log</file>
            <append>false</append>

            <!-- #########################################
                 # Max of 2 backup zip's (plus uncompressed
                 # working file, ${dest.dir}/test.log)
                 ######################################### -->
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>${dest.dir}/test.%i.log.zip</fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>2</maxIndex>
            </rollingPolicy>

            <!-- #########################################
                 # Rollover when file size reaches 5MB. 
                 # We're using our custom policy here that
                 # works around a bug (LBCORE-123).
                 ######################################### -->
            <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
            <triggeringPolicy class="com.example.SizeBasedTriggeringPolicy">
                <maxFileSize>5MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>

        <logger name="com.example.HelloAndroidActivity" level="TRACE">
            <appender-ref ref="FILE" />
        </logger>

        <root level="DEBUG" >
            <appender-ref ref="LOGCAT" />
        </root>
    </configuration>
</logback>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐