这是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中
代码语言:javascript复制compile 'com.orhanobut:logger:1.15'
特性
Android原生的log消息效果如下:
代码语言:javascript复制Log.d(TAG,"hello");
代码语言:javascript复制D/MainActivity: onCreate:
而Logger效果如下:
代码语言:javascript复制Logger.d("hello");
Logger.d("hello %s %d", "world", 5); // String.format
代码语言:javascript复制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);
格式化参数打印功能
代码语言:javascript复制Logger.d("hello %s", "world");
常用容器的支持如Array、Set、List
代码语言:javascript复制Logger.d(list);
Logger.d(map);
Logger.d(set);
Logger.d(new String[]);
定义Logger的标签TAG.
标签默认为PRETTYLOGGER
定义统一的全局标签
代码语言:javascript复制Logger.init(YOUR_TAG);
定义局部临时的标签
代码语言:javascript复制Logger.t("mytag").d("hello");
设置(可选)
Logger可以在初始化的时候配置选项,它们只能被设置一次,因此它们最好的代码编写的地方就是你工程的Application。它们的所有项都是可以配置的。当然不配置也可以的,你可以作用默认的配置。
代码语言:javascript复制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示例
代码语言:javascript复制Logger.d("hello");
Logger.e(exception, "message");
Logger.json(JSON_CONTENT);
更改logger日志中方法的显示数。
默认显示2个方法。可以通过以下代码设置
代码语言:javascript复制Logger.init().methodCount(1);
或者
Logger.t(1).d("test");
上面的图片显示得是两个方法名
这张图片只显示一张图片了
隐藏线程信息
代码语言:javascript复制Logger.init().methodCount(1).hideThreadInfo();
只显示Log信息
只显示log信息的意思就是不显示方法名和线程信息
代码语言:javascript复制Logger.init().methodCount(0).hideThreadInfo();
优雅地打印json数据
代码语言:javascript复制Logger.json(YOUR_JSON_DATA);
打印异常信息
代码语言:javascript复制Logger.e(exception,"message");
备注
- 使用过滤器效果更好。
- 确保AndroidStudio wrap option选项被禁用
其它也不多说了,总之优雅大方。