引言
编程开发过程中,打印日志信息从编程开始就有了,它与单步调试并称程序调试的两大神技。现在调试工具越来越好用,单步调试没有任何困难,但是打印日志仍然是不可或缺的必杀技,它为我们的编程开发提供了很大的帮助。
简介
GitHub
地址:https://github.com/orhanobut/logger
Logger
提供以下功能:
- 线程的信息
- 类的信息
- 方法的信息
- 可打印JSON内容
- 可打印换行符
- 简洁的输出
- 从日志跳转到源码
Logger
与原生Log
最大的不同就是:Logger
打印出来的日志一目了然,我们大致看下原生Log
和Logger
打印出来的日志区别:
原生Log
打印的日志:
Logger
打印的日志:
对比以上图示可以看到Logger
打印的日志清晰明了,同时还将日志做了边框,可以让我们看起来更加舒服,比较人性化。
使用
效果图:
1.添加依赖
compile 'com.orhanobut:logger:1.15'
2.初始化设置
可在Application
中进行初始化设置。
Logger.init(TAG) // 自定义日志TAG,默认TAG为PRETTYLOGGER
.methodCount(3) // 方法栈打印个数,默认为2
.hideThreadInfo() // 隐藏线程信息,默认显示
.logLevel(LogLevel.NONE) // 设置日志不输出,默认为LogLevel.FULL日志输出
.methodOffset(2) // 调用堆栈的函数偏移值,默认为0
.logAdapter(new AndroidLogAdapter()); // 自定义一个打印适配器
3.改变TAG
开发中我们可能要在不同的类或位置进行日志的输出,如果不想在不同的位置一直使用相同的TAG
标识,而是需要根据实际情景设置不同的TAG
值时我们可以使用以下方式进行:
Logger.t("myTag").d("hello");
4.基本使用
Logger.d("hello one");
Logger.e("hello two");
Logger.w("hello three");
Logger.v("hello four");
Logger.wtf("hello fives");
5.JSON
类型数据
public static final String JSON = "{"status":0,"message":"成功","data":{"age":"15","sex":"女"}}";
Logger.json(Constant.JSON);
6.XML
类型数据
public static final String XML = "<china dn="nay">
<city quName="黑龙江" pyName="heilongjiang" cityname="哈尔滨" state1="1" state2="1" stateDetailed="多云"/>
<city quName="吉林" pyName="jilin" cityname="长春" state1="0" state2="0" stateDetailed="晴"/>
<city quName="辽宁" pyName="liaoning" cityname="沈阳" state1="1" state2="0" stateDetailed="多云转晴"/>
<city quName="海南" pyName="hainan" cityname="海口" state1="22" state2="21" stateDetailed="中到大雨转小到中雨"/>
</china>";
Logger.xml(Constant.XML);
7.List
类型数据
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
Logger.d(list);
8.Map
类型数据
Map<String, String> map = new HashMap<>();
map.put("key_hello", "hello");
map.put("key_world", "world");
Logger.d(map);
9.Set
类型数据
Set<String> set = new HashSet<>();
set.add(new String("hello"));
set.add(new String("world"));
Logger.d(set);
10.字符串格式化
Logger.d("hello %s %d", "world", 5);
11.异常Exception
int[] a = new int[3];
try {
a[4] = 3;
} catch (Exception e) {
Logger.e(e, "message");
}
总结
- 如果对日志要求不高,不是特别在意其美观整洁性,
Android
自带的Log
就很不错了。 - 如果觉得
Android
自带的Log
不好用,那么Logger
日志框架也是一个不错的选择,使用起来简单方便,直接调用即可。除了日志输出整洁美观之外,还可以配置其输出(如在上线打包时就可以设置日志不输出),方便我们在不同情境下进行简单配置,同时拥有强大的输出兼容,除了普通字符串以外还可以直接打印json
、xml
、list
、map
、set
、异常等。
项目地址 ☞ 传送门