android开源日志库的使用
Log是什么
Log 在软件开发中被用于在控制台打印输出信息,方便代码跟踪和调试。 log 一般分为4个等级,级别从高到低依次为 ERROR、WARN、INFO、DEBUG。通过定义特别的级别信息,可以得到我们所需要的打印信息,例如,在生产环境中,我们可能不关心 INFO 级别的日志,我们只关注 ERROR 或者 WARN 级别的日志。
使用Android原生的日志功能
首先,我们先来看如何在 android 中打印日志。我们可以调用 Log.e(),Log.i(),Log.w(),Log.d() 分别代表打印 ERROR、INFO、WARN、DEBUG 级别的日志。这些方法都可以接收两个参数,第一个是 tag,主要用于标识,方便查看信息时进行过滤。第二个是输出信息 msg 。具体看一下代码。
Log.e("cat", "fuck");Log.v("cat", "fuck");Log.i("cat", "fuck");Log.d("cat", "fuck");
这里我的筛选规则是 v(Verbose) 以上的,所以全部信息都被打印出来了。
01-18 01:57:51.528 9053-9053/com.chenantao.main E/cat: fuck01-18 01:57:51.528 9053-9053/com.chenantao.main V/cat: fuck01-18 01:57:51.528 9053-9053/com.chenantao.main I/cat: fuck01-18 01:57:51.528 9053-9053/com.chenantao.main D/cat: fuck
到这里基本的使用方法就说完了,有什么问题呢?由于输出信息只能是字符串类型,那么当我打印出一串长长的 json 格式的字符串,看起来是否很蛋疼?或者,当我看到一段莫名奇妙的 log 信息,我想看是哪个家伙调用了它,但在茫茫的代码海中寻找,简直不要太刺激。基于以上两个问题,我们可以使用 github 上的一些开源的日志工具库。
Logger库的使用
地址:https://github.com/orhanobut/logger
Logger 是一个简单、牛逼的 android 开源库。
它提供了非常多的功能:
* 线程信息
* 类信息
* 方法信息
* 非常人性化的json 文本的输出
* 简洁的输出
* 可以在输出信息处跳转到源码处
导入依赖
在你项目的 build.gradle 中加入repositories { // ... maven { url "https://jitpack.io" }}dependencies { compile 'com.github.orhanobut:logger:1.12'}
使用
简单使用
嗯,就这么简单,你就可以开始使用了。先来看看打印一段普通的文本。
Logger.init("cat");Logger.e("哈哈哈");
注意,在使用前要先调用 init 进行初始化,并且只需调用一次。
控制台输出:
我操,这效果,我先给个99分吧,余下一分看它其他功能再决定给不给。
个性化配置
你也可以自定义标签名,输出信息,或者全局控制是否进行打印等。
Logger .init(YOUR_TAG) // 如果仅仅调用 init 不传递参数,默认标签是 PRETTYLOGGER .methodCount(3) // 显示调用方法链的数量,默认是2 .hideThreadInfo() // 隐藏线程信息,默认是隐藏 .logLevel(LogLevel.NONE) // 日志等级,其实就是控制是否打印,默认为 LogLevel.FULL .methodOffset(2) // default 0 .logTool(new AndroidLogTool()); // custom log tool, optional}
更多用法
常用打印日志的方法。
Logger.d("hello");Logger.e(exception, "message");Logger.json(JSON_CONTENT);
输出结果:
你也可以进行动态配置,例如设置调用方法链的数量:
Logger.t(1).e("哇嘎嘎");
总结
这篇为开山篇,仅仅只是介绍这个库以及一些简单用法,并没有列出完整的 api ,其实也没多少 api 。用 android studio 的话,你直接打个 Logger. 便有提示了,你看方法名大概都能知道有什么用,实在不知道的话,也可以查看 doc 注释。
好了先到这里,下一篇将带来源码解析。(手动斜眼笑)。
更多相关文章
- [Android(安卓)Training视频系列] 6.3 Saving Data in SQL Datab
- Android(安卓)Beam 告诉我们未来近距离数据传输新方式(视频)
- FAQ_17 android string.xml 里面的 %
- [Android]如何做一个崩溃率少于千分之三噶应用app(12)-module页面
- Android(安卓)获取内存信息(RAM,ROM)
- 获取Android设备唯一标识码以及其他信息
- Android: SQLite + ListView 实现 新闻 App
- Android亮屏速度分析总结
- 【Android信息安防】三星KNOX容器(2)