博客
关于我
Timber 配合 logback-android (slf4j) Log输出
阅读量:500 次
发布时间:2019-03-07

本文共 4875 字,大约阅读时间需要 16 分钟。

Timber 配合 logback-android

作用

Logback-Android, 这个库,可以将Log写入到File,写入到数据库,写入到Email,写入到网络

如何使用

1.添加依赖

implementation 'org.slf4j:slf4j-api:1.7.29'    implementation 'com.github.tony19:logback-android:2.0.0'    implementation rootProject.ext.dependencies["timber"]//Timber 写在了配置文件:            "timber"                     : "com.jakewharton.timber:timber:4.7.1",

2.权限

存储权限

3.配置文件

在这里插入图片描述

%-5relative [%thread] - %msg%n
true
true
${LOG_DIR}/base.log
%date [%thread] %-5level %logger{36} [%file:%line] - %msg%n
${LOG_DIR}/app.${today}.log
true
%date %-5relative [%thread] %-5level - %msg%n
${LOG_DIR}/app.%d{yyyy-MM-dd}.log
7
10MB

在Android 11平台上,存储是强制分区存储的,所以存储地址需要变更为内部存储地址。

4.JAVA部分

public class FileLoggingTree extends Timber.DebugTree {       private static Logger mLogger = LoggerFactory.getLogger(FileLoggingTree.class);    @Override    protected void log(int priority, String tag, @NotNull String message, Throwable t) {           if (priority == Log.VERBOSE) {               return;        }        if (!TextUtils.isEmpty(message)) {               String logMessage = tag + ": " + message;            switch (priority) {                   case Log.DEBUG:                    mLogger.debug(logMessage);                    break;                case Log.INFO:                    mLogger.info(logMessage);                    break;                case Log.WARN:                    mLogger.warn(logMessage);                    break;                case Log.ERROR:                    mLogger.error(logMessage);                    break;                default:                    break;            }        } else {               if (t != null) {                   switch (priority) {                       case Log.DEBUG:                        mLogger.debug(tag, t);                        break;                    case Log.INFO:                        mLogger.info(tag, t);                        break;                    case Log.WARN:                        mLogger.warn(tag, t);                        break;                    case Log.ERROR:                        mLogger.error(tag, t);                        break;                    default:                        break;                }            }        }    }}
/** * ================================================ * 日志工具类 * ================================================ */public class AppLogUtils {       private static String mTag = "AppLogUtils ===";    private static boolean isLog = true;    private AppLogUtils() {           throw new IllegalStateException("you can't instantiate me!");    }    public static boolean isLog() {           return isLog;    }    public static void setLog(boolean isLog) {           AppLogUtils.isLog = isLog;    }    public static void setTag(String tag) {           AppLogUtils.mTag = tag;        Timber.plant(new FileLoggingTree());    }    public static void input(String msg) {           if (!isLog) {               return;        }        Timber.tag(mTag).i(msg);    }    public static void input(String tag, String msg) {           if (!isLog || TextUtils.isEmpty(msg)) {               return;        }        Timber.tag(mTag + tag).i(msg);    }    public static void warn(String tag, String msg) {           if (!isLog || TextUtils.isEmpty(msg)) {               return;        }        Timber.tag(mTag + tag).w(msg);    }    public static void error(String tag, String msg) {           if (!isLog || TextUtils.isEmpty(msg)) {               return;        }        Timber.tag(mTag + tag).e(msg);    }    public static void error(String tag, Exception e) {           if (!isLog || e == null) {               return;        }        Timber.tag(mTag + tag).e(e);    }    public static void debugInfo(String tag, String msg) {           if (!isLog || TextUtils.isEmpty(msg)) {               return;        }        Timber.tag(mTag + tag).d(msg);    }}

参考地址

Android–>Log系统,Logback的使用体验(slf4j):

转载地址:http://bovcz.baihongyu.com/

你可能感兴趣的文章
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>