android开源日志库的使用
2016-01-18 16:53
387 查看
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: fuck 01-18 01:57:51.528 9053-9053/com.chenantao.main V/cat: fuck 01-18 01:57:51.528 9053-9053/com.chenantao.main I/cat: fuck 01-18 01:57:51.528 9053-9053/com.chenantao.main D/cat: fuck
到这里基本的使用方法就说完了,有什么问题呢?由于输出信息只能是字符串类型,那么当我打印出一串长长的 json 格式的字符串,看起来是否很蛋疼?或者,当我看到一段莫名奇妙的 log 信息,我想看是哪个家伙
4000
调用了它,但在茫茫的代码海中寻找,简直不要太刺激。基于以上两个问题,我们可以使用 github 上的一些开源的日志工具库。
Logger库的使用
地址:https://github.com/orhanobut/loggerLogger 是一个简单、牛逼的 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 注释。好了先到这里,下一篇将带来源码解析。(手动斜眼笑)。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories