在我们平时开发中,都要进行调试或者打log测试代码逻辑。那么打log日志的时候,谁都想自己的日志更加漂亮,一目了然,那么这里就有一款漂亮的log日志库——Logger。
Logger的Github主页:https://github.com/orhanobut/logger
官方描述:Simple, pretty and powerful logger for android
Logger能打印的信息包括:
- 线程的信息
- 类的信息
- 方法的信息
- 将 JSON 文本人性化输出
- 将换行符人性化输出
- 简洁的输出
- 从日志跳转到源码
1.引用:
implementation 'com.orhanobut:logger:2.2.0'
2.初始化
Logger.addLogAdapter(new AndroidLogAdapter());
3.普通使用
Logger.d("debug")
Logger.e("error")
Logger.w("warning")
Logger.v("verbose")
Logger.i("information")
Logger.wtf("What a Terrible Failure")
这里是对应的各个级别的样式:






4.打印json数据或xml数据
这里打印json数据:
Logger.json("[{\n" +
"\t\"id\": 110000,\n" +
"\t\"name\": \"北京市\"\n" +
"}, {\n" +
"\t\"id\": 120000,\n" +
"\t\"name\": \"天津市\"\n" +
"}, {\n" +
"\t\"id\": 130000,\n" +
"\t\"name\": \"河北省\"\n" +
"}, {\n" +
"\t\"id\": 140000,\n" +
"\t\"name\": \"山西省\"\n" +
"}, {\n" +
"\t\"id\": 150000,\n" +
"\t\"name\": \"内蒙古自治区\"\n" +
"}, {\n" +
"\t\"id\": 210000,\n" +
"\t\"name\": \"辽宁省\"\n" +
"}]")
效果样式:

5.设置是否打印日志:
在Application中初始化时,可根据当前环境是测试还是线上环境设置是否打印日志。
Logger.addLogAdapter(object: AndroidLogAdapter() {
override fun isLoggable(priority: Int, tag: String?): Boolean {
return false
}
})
6.自定义日志属性
val formatStrategy: FormatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) // 是否显示显示当前线程,默认显示
.methodCount(0) // 方法栈打印的个数,默认是 2
.methodOffset(7) // 设置调用堆栈的函数偏移值,默认是 0
.tag("My custom tag") // 自定义tag内容
.build()
Logger.addLogAdapter(AndroidLogAdapter(formatStrategy))
更多更优雅的用法,还可以自己去自定义LogAdapter做到。
网友评论