Android开源日志库Logger使用教程

来源:互联网 发布:数据图表 编辑:程序博客网 时间:2024/05/19 12:14

今日科技快讯

相信有不少朋友之前预定的《第二行代码》都已经到手了,根据大家在后台给我的反馈,最快的都已经看完五章了,速度真是让我膛目结舌。

不过现在拿到书的朋友们也都是最早一批买书的,首次印刷的书中难免会有一些勘误,我在后台也是收集了不少大家反馈的问题。所有已确认的勘误我都让美女张霞在图灵的官网上进行登记了,大家可以访问下面这个网址来查看目前有哪些已知勘误,在阅读的时候尽量避过这些坑。

http://www.ituring.com.cn/book/1841

当然,如果你有发现新的勘误,也可以在上面的网址中进行提交,或者在后台反馈给我也是可以的,感谢大家共同努力让这本书更完美。

作者简介

本篇来自 张虔庚 的投稿,介绍了如何使用开源日志库Logger,希望能够帮助还不熟悉的朋友快速入门。

张虔庚 的博客地址:

http://blog.csdn.net/like_program

Logger是什么

在我们日常的开发中,肯定是少不了要和 Log 打交道,回想一下我们是怎么使用 Log 的:先定义一个静态常量 TAG,TAG 的值通常是当前类的类名,然后在需要打印 Log 的地方,调用 Log.d(TAG, "要打印的内容")。每次新写一个类,都要写一个 TAG,这也就算了,最苦逼的是,项目一上线,还要手动去把每个 Log 注释掉。。。

当然,有的同学可能要说,这又没什么,自己封装一个 Log 不就行了。但是对新手来说,自己封装有一定的难度,如果有现成的开源库可以直接拿来用就好了。

Github 上的大牛当然也注意到了这个情况,于是开源日志库 Logger 诞生了。

Logger 的 Github 主页:

https://github.com/orhanobut/logger

Logger 提供以下功能:

  • 线程的信息

  • 类的信息

  • 方法的信息

  • 将 JSON 文本人性化输出

  • 将换行符人性化输出

  • 简洁的输出

  • 从日志跳转到源码

Logger 与 原生 Log 最大的不同就是:Logger 打印出来的日志一目了然,引用下官方 Github 上的图片,看下原生 Log 和 Logger 打印日志的区别:

原生 Log 打印的日志:

Logger 打印的日志:

可以看到,Logger 打印的日志把多余的日志全部忽略了,只显示对我们有用的日志,而且还把日志框了起来,可以让我们看得更舒服。不得不说,Logger 做的实在是太人性化了。

Logger 使用方法也不难,Logger 开源库的 Github 主页 写了很详细的使用方法,英文还过得去的同学可以直接去 Logger 主页查看使用方法,有英文恐惧症的同学呢,可以通过这篇博客来学习下。

Logger的使用

打开 Android Studio,新建 LoggerTest 项目。

1. 导入依赖

在 LoggerTest / app/ build.gradle 中的 dependencies 中,导入依赖,代码如下:

dependencies {    compile 'com.orhanobut:logger:1.15'
}

然后 Android Studio 应该会弹出 Sync Now,也就是箭头 1 指向的位置,如图:

如果弹出了 Sync Now,就点击它,如果没有弹出,就点击箭头 2 指向的选项。

等 Gradle 构建完,我们就可以使用 Logger了。

2. 简单使用

Logger 的使用方法和原生 Log 差不多,我们先来尝试下打印一个简单文本。

修改 MainActivity.Java 中的 onCreate() 方法,代码如下:


咦,怎么没写 TAG?其实,Logger 是有它自己默认的 TAG 的,默认的 TAG 是 PRETTYLOGGER,我们运行一下程序,看一下输出日志:

我们可以看到,已经成功的将日志输出了,而且比我们之前用的原生 Log 输出的美观多了,日志信息一目了然。箭头指向的就是 Logger 默认的 TAG,所以如果你想让 Logcat 只显示你自己打印的日志,可以在日志过滤器中,将默认 TAG 添加进去。


或者直接在过滤框中添加:

3. 打印更多类型数据

Logger 还支持打印 JSON,XML 等格式的数据。

(1). JSON 类型数据


(2). XML 类型数据


(3). List 类型数据


(4). Map 类型数据


(5). Set 类型数据


4. 字符串格式化


5. 自定义 TAG

如果你不满意默认的 TAG,也可以自己定义一个 TAG,只需要调用一次 Logger.init() 就行了。因为只需要调用一次,所以可以在 Application 中来完成 Logger 的初始化。

新建 MyApplication 继承 Application,代码如下:


修改 AndroidManifest.xml 中 application 的属性,添加 android:name=".MyApplication" ,AndroidManifest.xml 代码如下:


这样 App 启动时,初始化的就是我们自定义的 MyApplication 了。然后我们在 MainActivity 的 onCreate() 中打印一下日志,看下自定义的 TAG 生效了没。


可以看到,我们自定义的 TAG 已经生效了。那么有的同学可能会有疑问了,我要是不想一直用这个 TAG 呢,要是临时想换个 TAG 用呢,当然也是有办法的,调用 Logger.t("临时TAG名").d() ,就能使用临时的 TAG 打印日志了。


可以看到,临时的 TAG 名被追加到自定义 TAG 的后面了。

6. 设置不打印日志

之前说了,日志只是开发的时候需要用到,等到项目上线就不能用了。Logger 当然也考虑到了这一点,通过设置 Logger.init(TAG).logLevel(LogLevel.NONE) 可以设置为不打印日志。logLevel() 方法默认的参数是 LogLevel.FULL,也就是打印全部日志。修改 MyApplication 的 onCreate() 方法:

@Override
public
void onCreate() {
   super.onCreate();
   Logger.init(TAG).logLevel(LogLevel.NONE);}

运行一下,可以发现 Logger 没有打印日志。

7. 打印 Exception

Logger 打印 Exception,可以很清晰的看到 Exception 信息,这里我们写一个数组越界异常:


8. 更多个性化设置

Logger 还有一些个性化设置,比如


有兴趣的同学可以去 Logger 的 Github 主页 查看Logger 的更多用法。

本文源码地址:

http://download.csdn.net/detail/like_program/9669333

更多

每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。

如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。

欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:

原创粉丝点击