Android Logger框架,“忧秀”码农打印Log的正确姿势

日志几乎是作为码农的我们每天都要打交道的对象,出bug的时候,刷满屏幕的Log中排查,这酸爽......整齐规范的Log信息能够让我们快速得定位问题,提高效率,除此之外还看着心情舒服。

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

Logger框架提供了很多实用的功能:

  • 输出线程信息
  • 输出类信息
  • 输出方法信息
  • 输出格式化的List、Map、Json、Xml
  • 快速定位
  • 日志控制,等....

下面来着官方的图片:

第一眼看到,真心觉得舒服

使用Logger也很简单,集成使用也只是一杯茶的事。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

首先导入依赖库:

    // Logger
    implementation 'com.orhanobut:logger:2.2.0'

MyApplication当中初始化:

        //日志控制
        Logger.addLogAdapter(new AndroidLogAdapter());

当然不能忘记AndroidMainfest.xml中配置MyApplication

使用Logger输出日志:

        // 各种打印
        Logger.d("debug");
        Logger.e("error");
        Logger.w("warning");
        Logger.v("verbose");
        Logger.i("information");
        Logger.wtf("What a Terrible Failure");

        // 打印数组对象
        Logger.d(string);
        // 打印list
        Logger.d(list);
        // 打印map
        Logger.d(map);

        // 打印Json
        Logger.json(json);

        // 打印xml
        Logger.xml(xml);

Log显示:

2018-11-30 15:37:33.300 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.301 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.301 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.301 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.301 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:63)
2018-11-30 15:37:33.302 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.302 5383-5383 D/PRETTY_LOGGER: │ debug
2018-11-30 15:37:33.302 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:64)
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: │ error
2018-11-30 15:37:33.302 5383-5383 E/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:65)
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: │ warning
2018-11-30 15:37:33.303 5383-5383 W/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:66)
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: │ verbose
2018-11-30 15:37:33.307 5383-5383 V/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.308 5383-5383 I/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.309 5383-5383 I/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.309 5383-5383 I/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.309 5383-5383 I/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.310 5383-5383 I/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:67)
2018-11-30 15:37:33.310 5383-5383 I/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.310 5383-5383 I/PRETTY_LOGGER: │ information
2018-11-30 15:37:33.313 5383-5383 I/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.313 5383-5383 A/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.313 5383-5383 A/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.313 5383-5383 A/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.313 5383-5383 A/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.314 5383-5383 A/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:68)
2018-11-30 15:37:33.314 5383-5383 A/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.314 5383-5383 A/PRETTY_LOGGER: │ What a Terrible Failure
2018-11-30 15:37:33.314 5383-5383 A/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.314 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.314 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.314 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:71)
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: │ [array1, array2, array3]
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.315 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:73)
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: │ [item1, item3, item2]
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.316 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.328 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:75)
2018-11-30 15:37:33.328 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.329 5383-5383 D/PRETTY_LOGGER: │ {key1=value1, key2=value2, key3=value3}
2018-11-30 15:37:33.329 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.335 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:78)
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.336 5383-5383 D/PRETTY_LOGGER: │ {
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │   "status": 200,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │   "message": "success",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │   "data": {
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "year": 2018,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "month": 10,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "day": 1,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "lunarYear": 2018,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "lunarMonth": 8,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "lunarDay": 22,
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cnyear": "贰零壹捌 ",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cnmonth": "八",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cnday": "廿二",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "hyear": "戊戌",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cyclicalYear": "戊戌",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cyclicalMonth": "辛酉",
2018-11-30 15:37:33.337 5383-5383 D/PRETTY_LOGGER: │     "cyclicalDay": "丙寅",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "suit": "祭祀,冠笄,会亲友,拆卸,起基,除服,成服,移柩,启钻,安葬,沐浴,捕捉,开光,塑绘",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "taboo": "作灶,祭祀,入宅,嫁娶",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "animal": "狗",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "week": "Monday",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "festivalList": [
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │       "国庆节"
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     ],
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "jieqi": {
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │       "9": "寒露",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │       "24": "霜降"
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     },
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "maxDayInMonth": 29,
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "leap": false,
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "lunarYearString": "戊戌",
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │     "bigMonth": false
2018-11-30 15:37:33.338 5383-5383 D/PRETTY_LOGGER: │   }
2018-11-30 15:37:33.339 5383-5383 D/PRETTY_LOGGER: │ }
2018-11-30 15:37:33.339 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.801 5383-5383 D/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 15:37:33.804 5383-5383 D/PRETTY_LOGGER: │ Thread: main
2018-11-30 15:37:33.804 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.804 5383-5383 D/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 15:37:33.804 5383-5383 D/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:81)
2018-11-30 15:37:33.805 5383-5383 D/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <?xml version="1.0" encoding="UTF-8"?>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <!--   Copyright w3school.com.cn  --><note>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <to>George</to>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <from>John</from>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <heading>Reminder</heading>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ <body>Don't forget the meeting!</body>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: │ </note>
2018-11-30 15:37:33.806 5383-5383 D/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

还可以占位符输出:

        // 占位符输出
        Logger.e("message: %s", "hello");
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: │ Thread: main
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: │ MainActivity.onCreate  (MainActivity.java:57)
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: │    MainActivity.showLog  (MainActivity.java:84)
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: │ message: hello
2018-11-30 18:56:35.432 6995-6995 E/PRETTY_LOGGER: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

日志控制,日常开发调试,日志的输出对问题定位,快速掌握程序运行情况起到作用是很重要的;但是,对于发布的上线软件,输出了程序内部日志则会暴露程序内部信息,严重则会遭受到不可逆转的后果:如信息泄露,技术暴露,Bug,成为黑客入侵的切入点。

Logger提供日志控制,在Logger初始化的时候进行设置, 重写AndroidLogAdapter的isLoggable方法,返回值为BuildConfig.DEBUG(编译生成,调试为true,打包release版本后为false),也可以返回自定义的config文件配置的IS_DEBUG变量值:

        // 日志控制
        Logger.addLogAdapter(new AndroidLogAdapter() {

            @Override
            public boolean isLoggable(int priority, @Nullable String tag) {
                // 此处返回项目配置的日志控制变量
                return BuildConfig.DEBUG;
            }
        });

Logger自定义,官方给出来的具体说明:

    FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
      .showThreadInfo(false)  // (Optional) Whether to show thread info or not. Default true
      .methodCount(0)         // (Optional) How many method line to show. Default 2
      .methodOffset(7)        // (Optional) Hides internal method calls up to offset. Default 5
      .logStrategy(customLog) // (Optional) Changes the log strategy to print out. Default LogCat
      .tag("My custom tag")   // (Optional) Global tag for every log. Default PRETTY_LOGGER
      .build();

    Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));

对于Android Studio3.1的小伙伴们,Logger输出是不整齐的,网上说这是3.1版本的bug,3.2版本已经修复,上面是使用的是3.2版本。

当然,官网也有给出一些IDE设置优化的建议:过滤筛选,取消设置自动换行,以及设置显示内容

类型的Log框架还有

KLog:https://github.com/ZhaoKaiQiang/KLog

XLog:https://github.com/elvishew/xLog

LogUtils:https://github.com/pengwei1024/LogUtils

Logger的使用就暂且到这里了,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值