Android 如何优雅的打印日志

1.介绍

Logger是一款Android平台上的简单、优雅、强大的开源日志库。

Logger GitHub地址

Logger提供了以下方法:

  • 打印线程的信息

  • 打印类的信息

  • 打印方法的信息

  • 优雅的打印JSON数据

  • 优雅的打印换行符

  • 打印简洁的信息

  • 点击日志跳转至源码

感受下Logger打印的日志:

Android 如何优雅的打印日志_第1张图片

2.简单使用

在app根目录的buil.gradle文件中加入依赖

compile 'com.orhanobut:logger:1.15'

和普通的Log一样,Logger支持五种级别的日志打印方法:

Logger.v();
Logger.d();
Logger.i();
Logger.w();
Logger.e();

还有一种不常用的方法:

// what a terrible failure
// 可怕的失败,报告一个永远不可能发生的情况
Logger.wtf("Hello World!");

打印一条info级别的日志,默认的TAG是PRETTYLOGGER,看下效果:

Logger.i("Hello World!");

Android 如何优雅的打印日志_第2张图片

3.打印更多类型的数据

Logger还支持打印JSON、XML、集合、数组。

打印JSON

String JSON_CONTENT = "{\"weatherinfo\":{\"city\":\"北京\",\"cityid\":\"101010100\"," +
                "\"temp\":\"-2\",\"WD\":\"西北风\",\"WS\":\"3级\",\"SD\":\"241%\",\"WSE\":\"3\"," +
                "\"time\":\"10:61\",\"isRadar\":\"1\",\"Radar\":\"JC_RADAR_AZ9010_JB\"}}";

Logger.json(JSON_CONTENT);

Android 如何优雅的打印日志_第3张图片

打印XML

String XML_CONTENT = "<resp><city>北京city><updatetime>16:10updatetime><wendu>23wendu>" +
                "<fengli>3级fengli><shidu>19%shidu><fengxiang>北风fengxiang>resp>";

Logger.xml(XML_CONTENT);

Android 如何优雅的打印日志_第4张图片

打印集合

List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");

Logger.d(list);

Android 如何优雅的打印日志_第5张图片

打印数组的方式和集合类似,就不再举例了。

4.打印异常

try {
    int a = 6 / 0;
} catch (Exception e) {
    Logger.e(e, "Exception");
}

Android 如何优雅的打印日志_第6张图片

5.格式化字符串

Logger还提供了格式化字符串的功能。

Logger.d("Hello %s%s", "World", "!");

Android 如何优雅的打印日志_第7张图片

6.自定义打印TAG

自定义全局TAG

新建一个Application类LoggerDemoApplication,在onCreate方法中调用Logger.init(TAG)。

public class LoggerDemoApplication extends Application {

    private String TAG = "LoggerDemo";

    @Override
    public void onCreate() {
        super.onCreate();
        Logger.init(TAG);
    }
}

在AndroidManifest中加入application的name属性。

".LoggerDemoApplication"
    ...

Android 如何优雅的打印日志_第8张图片

自定义单个TAG

Logger.t("MyTag").d("Hello World!");

Android 如何优雅的打印日志_第9张图片

7.关闭日志打印

在LoggerDemoApplication中,设置log的级别为NONE即可关闭日志打印。

Logger.init(TAG).logLevel(LogLevel.NONE);

8.更多设置

Logger
  .methodCount(3)                 // 设置打印方法栈的个数,默认是2
  .hideThreadInfo()               // 隐藏线程信息,默认显示
  .methodOffset(2)                // 设置调用堆栈的偏移值,默认是0
  .logAdapter(new AndroidLogAdapter()); // 自定义Log适配器
}

9.写在最后

Demo下载地址

你可能感兴趣的:(开源项目)