发表于: 2018-12-30 19:44:29
0 915
今天完成的事情
日志框架Logger
优点
1.线程信息:log在哪个线程
2.类信息:log在哪个类
3.方法信息:log在哪个方法的哪一行
4.漂亮地打印json
5.漂亮的打印XML
6.漂亮的换行分割
7.整洁的输出
8.跳转到源代码
使用
1.添加依赖
implementation 'com.orhanobut:logger:2.2.0'
2.初始化
默认配置
Logger.addLogAdapter(new AndroidLogAdapter());
如果在Application中初始化,记得修改 AndroidManifest.xml 中 application 标签属性,添加 android:name=".MyApplication" ,不然不会打印。
修改默认配置
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) //(可选)是否显示线程信息,默认值为true
.methodCount(2) // (可选)要显示的方法行数, 默认2
.methodOffset(7) // (可选)设置调用堆栈的函数偏移值,
//0的话则从打印该Log的函数开始输出堆栈信息,默认是0
.logStrategy(customLog) //(可选)更改要打印的日志策略,默认LogCat
.tag("MyTAG") //(可选)全局TAG,默认PRETTY_LOGGER
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
3.使用
(1)简单使用
Logger.d("DEBUG日志");
Logger.i("INFO日志");
Logger.e("ERROR日志");
(2)格式化输出
Logger.d("hello %s, luck number is %d", "world", 5);
(3)打印集合
List list = new ArrayList();
list.add("hello");
list.add("world");
Logger.d(list);
效果:PRETIY_LOGGER:[hello,world]
其他集合如Map、Set等同List
(4)打印JSON
String jsonDate = "{\"id\":859,\"channelnumber\":681,......" \"language\":\"EN\",\n" };";
Logger.json(jsonDate);
Log.d(TAG, jsonDate);
(5)打印XML
String xmlDate = "<province id=\"01\" name=\"北京\"> \n" +
" <city id=\"0101\" name=\"北京\"> \n" +
" <county id=\"010101\" name=\"北京\" weatherCode=\"101010100\"/> \n" +
" <county id=\"010102\" name=\"海淀\" weatherCode=\"101010200\"/> \n" +
......
" </city> \n" +
" </province> ";
Logger.xml(xmlDate);
Log.d(TAG, xmlDate);
4.控制打印开关
当我们发布软件,或者太多的log影响性能,那么就可以关闭logger打印,在application初始化的地方:
Logger.addLogAdapter(new AndroidLogAdapter() {
@Override public boolean isLoggable(int priority, String tag) {
return BuildConfig.DEBUG;
}
});
5.保存Log到文件
更换适配器即可
Logger.addLogAdapter(new DiskLogAdapter());
收获
日志框架Logger
评论