Logger使用及源码解析

wshunli
2018-05-22 / 0 评论 / 24 阅读 / 正在检测是否收录...

在 Android 开发过程中打印日志必不可少,Logger 就是一款优秀的 Android 开源日志库。

Logger 使用简单,输出日志美观高效,支持 JSON 、XML 格式输出,支持打印 Arrays 、Collections 等对象。

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

快速入门

在项目中添加依赖:

implementation 'com.orhanobut:logger:2.2.0'

快速开始:

Logger.addLogAdapter(new AndroidLogAdapter());
Logger.d("hello");

这样就可以打印日志了。

hello

当然不止打印这一种日志,和自带的函数类似:

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

也支持格式化输出:

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

支持数字、集合对象的输出,注意只支持 Logger.d() 方法:

Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);

支持 JSON 和 XML 的输出:

Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);

自定义 TAG ,仅本次日志打印有效:

Logger.t("MainActivity").d("hello");

支持把日志保存为文件:

Logger.addLogAdapter(new DiskLogAdapter());
Logger.d("hello");

只需更改 LogAdapter 即可,其他使用相同。

Logger.clearLogAdapters();

清除 LogAdapter 方法。

进阶使用

利用 PrettyFormatStrategy.newBuilder 还有更高级的设置,如:

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

再者实现对打印日