Logger日志框架使用详解

时间:2022-06-26 15:30:41

引言

编程开发过程中,打印日志信息从编程开始就有了,它与单步调试并称程序调试的两大神技。现在调试工具越来越好用,单步调试没有任何困难,但是打印日志仍然是不可或缺的必杀技,它为我们的编程开发提供了很大的帮助。

简介

GitHub地址:https://github.com/orhanobut/logger

Logger提供以下功能:

  1. 线程的信息
  2. 类的信息
  3. 方法的信息
  4. 可打印JSON内容
  5. 可打印换行符
  6. 简洁的输出
  7. 从日志跳转到源码

Logger与原生Log最大的不同就是:Logger打印出来的日志一目了然,我们大致看下原生LogLogger打印出来的日志区别:

原生Log打印的日志:

Logger日志框架使用详解

Logger打印的日志:

Logger日志框架使用详解

对比以上图示可以看到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");

Logger日志框架使用详解

5.JSON类型数据

public static final String JSON = "{"status":0,"message":"成功","data":{"age":"15","sex":""}}";

Logger.json(Constant.JSON);

Logger日志框架使用详解

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);

Logger日志框架使用详解

7.List类型数据

List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");

Logger.d(list);

Logger日志框架使用详解

8.Map类型数据

Map<String, String> map = new HashMap<>();
map.put("key_hello", "hello");
map.put("key_world", "world");

Logger.d(map);

Logger日志框架使用详解

9.Set类型数据

Set<String> set = new HashSet<>();
set.add(new String("hello"));
set.add(new String("world"));

Logger.d(set);

Logger日志框架使用详解

10.字符串格式化

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

Logger日志框架使用详解

11.异常Exception

int[] a = new int[3];
try {
    a[4] = 3;
} catch (Exception e) {
    Logger.e(e, "message");
}

Logger日志框架使用详解

总结

  1. 如果对日志要求不高,不是特别在意其美观整洁性,Android自带的Log就很不错了。
  2. 如果觉得Android自带的Log不好用,那么Logger日志框架也是一个不错的选择,使用起来简单方便,直接调用即可。除了日志输出整洁美观之外,还可以配置其输出(如在上线打包时就可以设置日志不输出),方便我们在不同情境下进行简单配置,同时拥有强大的输出兼容,除了普通字符串以外还可以直接打印jsonxmllistmapset、异常等。

项目地址 ☞ 传送门