我眼中最好用的Android日志记录库Logger。

时间:2021-05-22 19:49:43

这是logger github地址

简介

我刚开始学c的时候最喜欢用的就是用printf()打印信息。后来学java的时候又经常用System.out.println()这个方法。再后来学Android的时候接触到了Log工具类更是欢喜的不得了。但程序员都是懒的。后来Log敲烦了,心里总有些不爽。好在AndroidStudio提供了logt生成TAG,logd直接生成log.d()这样确实让我更爽了。
不过今天我介绍一款非常有名的开源库logger。

本文也是介绍它的基本使用,摘抄于github上它的README。没有什么技术含量。但没有使用的它的同学可以尝试一下。

Logger是什么?
Android平台上一款强大、简洁、优雅的日志打印框架。
Logger提供如下功能:
* 线程信息
* 类信息
* 方法信息
* 优雅地打印json内容
* 优雅地打印新的一行
* 简洁的输出格式
* 可以从log中点击跳转到代码

下载

Android Studio中

compile 'com.orhanobut:logger:1.15'

特性

Android原生的log消息效果如下:

Log.d(TAG,"hello");
D/MainActivity: onCreate: 

而Logger效果如下:

Logger.d("hello");
Logger.d("hello %s %d", "world", 5); // String.format

我眼中最好用的Android日志记录库Logger。

Logger.d("hello");
Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
Logger.log(DEBUG, "tag", "message", throwable);

格式化参数打印功能

Logger.d("hello %s", "world");

常用容器的支持如Array、Set、List

Logger.d(list);
Logger.d(map);
Logger.d(set);
Logger.d(new String[]);

定义Logger的标签TAG.

标签默认为PRETTYLOGGER

定义统一的全局标签

Logger.init(YOUR_TAG);

定义局部临时的标签

Logger.t("mytag").d("hello");

我眼中最好用的Android日志记录库Logger。

设置(可选)

Logger可以在初始化的时候配置选项,它们只能被设置一次,因此它们最好的代码编写的地方就是你工程的Application。它们的所有项都是可以配置的。当然不配置也可以的,你可以作用默认的配置。

Logger
.init(YOUR_TAG) // default PRETTYLOGGER or use just init()
.methodCount(3) // default 2
.hideThreadInfo() // default shown
.logLevel(LogLevel.NONE) // default LogLevel.FULL
.methodOffset(2) // default 0
.logAdapter(new AndroidLogAdapter()); //default AndroidLogAdapter
}

用另外的log工具替换原生的Log.

  • 实现LogAdapter
  • 在初始化的时候设置
.logAdapter(new CustomLogAdapter())

更多的log示例

Logger.d("hello");
Logger.e(exception, "message");
Logger.json(JSON_CONTENT);

我眼中最好用的Android日志记录库Logger。

更改logger日志中方法的显示数。

默认显示2个方法。可以通过以下代码设置

Logger.init().methodCount(1);
或者
Logger.t(1).d("test");

我眼中最好用的Android日志记录库Logger。

上面的图片显示得是两个方法名
我眼中最好用的Android日志记录库Logger。
这张图片只显示一张图片了

隐藏线程信息

Logger.init().methodCount(1).hideThreadInfo();

我眼中最好用的Android日志记录库Logger。

只显示Log信息

只显示log信息的意思就是不显示方法名和线程信息

Logger.init().methodCount(0).hideThreadInfo();

我眼中最好用的Android日志记录库Logger。

优雅地打印json数据

Logger.json(YOUR_JSON_DATA);

我眼中最好用的Android日志记录库Logger。

打印异常信息

Logger.e(exception,"message");

备注

  • 使用过滤器效果更好。
    我眼中最好用的Android日志记录库Logger。

  • 确保AndroidStudio wrap option选项被禁用
    我眼中最好用的Android日志记录库Logger。

其它也不多说了,总之优雅大方。