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 注释。
好了先到这里,下一篇将带来源码解析。(手动斜眼笑)。

更多相关文章

  1. [Android(安卓)Training视频系列] 6.3 Saving Data in SQL Datab
  2. Android(安卓)Beam 告诉我们未来近距离数据传输新方式(视频)
  3. FAQ_17 android string.xml 里面的 %
  4. [Android]如何做一个崩溃率少于千分之三噶应用app(12)-module页面
  5. Android(安卓)获取内存信息(RAM,ROM)
  6. 获取Android设备唯一标识码以及其他信息
  7. Android: SQLite + ListView 实现 新闻 App
  8. Android亮屏速度分析总结
  9. 【Android信息安防】三星KNOX容器(2)

随机推荐

  1. 多个Android(安卓)device offline处理命
  2. NDK的扩展
  3. android 保存和读取文件
  4. android---菜单栏选项
  5. android listView控件用法
  6. android 6.0锁屏界面时间位置修改
  7. android 动画框架
  8. Android(安卓)webView 使用back功能返回
  9. android之将图片转化为圆形图片
  10. android 查看so,jar栈内存使用情况