Android开发中,我们常常用到日志打印。利用系统的Log打印可以满足大部分需求,如果想使用起来更方便一般会在系统Log的基础上再进行封装。比如可以全局定义Tag,亦或是定义一个变量,控制Debug版本和Release版本的日志输出,这些都可以较好的提高开发效率。但开发中系统Log打印也有些明显的短板,比如说无法对Json数据和Xml数据格式化,还有超过一定的字数打印被截断。而我们今天要讲的Logger日志框架可以很好的解决这方面的问题。
简单使用
首先,添加依赖:
implementation 'com.orhanobut:logger:2.2.0'
进行初始化工作
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
showThreadInfo(false) // (Optional) Whether to show thread info or not. Default true
.methodCount(0) // (Optional) How many method line to show. Default 2
.tag("xyz") // (Optional) Global tag for every log. Default PRETTY_LOGGER
.build();
com.orhanobut.logger.Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
初始化设置上述信息,显示如下:
log.png
初始化时,showThreadInfo用来控制是否显示线程信息,methodCount控制方法数的显示,这里分别设置为false和0,不显示这些信息。这个功能虽然很强大,可以看到很多日志信息,但项目开发过程中日志打印很多,如果每条日志都显示线程信息和方法信息,会显得很乱,反而影响开发效率。
调用打印方法
Logger.d("debug");
Logger.e("error");
Logger.w("warning");
Logger.v("verbose");
Logger.i("information");
Logger.wtf("wtf!!!!");
Logger.d("hello %s", "world");
Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
基本使用方法如上,也系统Log打印类似,使用起来很方便。
结合具体的开发来说,个人观点加了虚线框使日志显示更突出,但也额外暂用了很多打印空间,开发打印日志很多时反而显得很乱,所以在打印一些简单信息时推荐还是使用系统Log打印。这个框架非常好的一点是可以格式化输出Json数据,而且没有字数限制,不会截断打印信息。开发过程中有Json数据打印的地方使用该框架还是非常方便的。
Json打印效果如下:
json打印.png
总结
Json打印建议使用Logger日志框架,一般信息打印建议还是用系统Log打印。