Android Logback  使用配置

2017-06-28  本文已影响124人  DavyJones1
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'com.github.tony19:logback-android-core:1.1.1-6'
compile('com.github.tony19:logback-android-classic:1.1.1-6') {
     // workaround issue #73
     exclude group: 'com.google.android', module: 'android'
}
/**
 * Logback 配置
 * Created by davy on 16/9/21.
 */
public class LogbackConfigurator {

    final static String PREFIX = "logs";

    public static void configure(Context context) {
        final String LOG_DIR = context.getExternalFilesDir("").getAbsolutePath() + File.separator + "logback";
        configureLogbackDirectly(LOG_DIR, PREFIX);
    }

    public static void configureLogbackDirectory(String logDir) {
        configureLogbackDirectory(logDir, PREFIX);
    }

    public static void configureLogbackDirectory(String logDir, String filePrefix) {

        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
        context.reset();

        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
        encoder.setContext(context);
        encoder.start();

        RollingFileAppender rollingFileAppender = new RollingFileAppender();
        rollingFileAppender.setAppend(true);
        rollingFileAppender.setContext(context);

        TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy();
        rollingPolicy.setFileNamePattern(logDir + File.separator + filePrefix + "_%d{yyyyMMdd}.txt");
        rollingPolicy.setMaxHistory(7);
        rollingPolicy.setParent(rollingFileAppender);  // parent and context required!
        rollingPolicy.setContext(context);
        rollingPolicy.start();

        rollingFileAppender.setRollingPolicy(rollingPolicy);
        rollingFileAppender.setEncoder(encoder);
        rollingFileAppender.start();

        LogcatAppender logcatAppender = new LogcatAppender();
        logcatAppender.setContext(context);
        logcatAppender.setEncoder(encoder);
        logcatAppender.setName("logcat");
        logcatAppender.start();

        ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
        root.setLevel(Level.TRACE);
        root.addAppender(rollingFileAppender);
        root.addAppender(logcatAppender);
    }
}
上一篇下一篇

猜你喜欢

热点阅读