Android中Log工具Timber

一、使用Timber的好处

不再重复使用TAG。之前使用Log方法每次使用都需要定义并传入一个TAG,在Timber中,若使用DebugTree,默认为当前类类名,若使用自定义Tree,直接定义一次,到处使用,不需重复设置
在打Timber调用处,不仅可以只输出Log,还可以执行其他操作。比如:存到数据库,进行输出,Socket传输,甚至显示到UI界面上等,只需要自定义Tree,并将对应逻辑在log(int priority, String tag, String message, Throwable t)方法中实现
统一项目Log日志方法,输出形式,输出时间,更加符合面向对象思想

二、使用方式

1、引入
api 'com.jakewharton.timber:timber:4.5.1'
2、实现ReleaseLogTree
 private static class ReleaseLogTree extends Timber.Tree {
        @Override
        protected void log(int priority, String tag, String message, Throwable t) {
            // TODO: 2020-03-19 这里可以对log信息做各种各样的操作!!!数据库、网络等
            Log.i("TimberActivity", message);
        }
    }

    private static class ReleaseLogsTree extends Timber.DebugTree {
        @Override
        protected void log(int priority, String tag, String message, Throwable t) {
            // TODO: 2020-03-19 这里可以对log信息做各种各样的操作!!!数据库、网络等
            Log.i("TimberActivity", message);
            super.log(priority, tag, message, t);
        }
    }
3、设置debug和release 打印树
 if (BuildConfig.DEBUG) {
            Timber.plant(new Timber.DebugTree());
        } else {
            Timber.plant(new ReleaseLogTree());
        }
4、设置TAG
Timber.tag("TimberActivity");
5、调用打印Log
        Timber.i("log for i !");
        Timber.d("log for d !");
        Timber.v("log for v !");
        Timber.w("log for w !");
        Timber.e("log for e !");
6、adb控制Log的打开关闭
//开启log
adb -d shell setprop log.tag.TimberActivity DEBUG
//关闭log
adb -d shell setprop log.tag.TimberActivity WARN

你可能感兴趣的:(Android中Log工具Timber)