一、Logger 是什么?
是一个简单、漂亮、功能强大的Android日志输出库
logger作为调试框架,支持以下功能:
线程的信息
类、方法的信息
格式化将 json、xml 输出
支持字符串格式参数
各种集合输出,list、map、array、set等
Logger 的 Github 主页:https://github.com/orhanobut/logger
二、Logger 的使用
1.导入依赖
- 在 build.gradle(Module:app)中的 dependencies 中,导入依赖代码如下:
dependencies {
implementation 'com.orhanobut:logger:2.2.0'
}
-
然后 Android Studio 应该会弹出 Sync Now,点击同步一下,等 Grade 构建完,就可以使用 Logger了
-
假如遇到无法引入依赖情况,配置一下仓库(不是必须配置的)
allprojects {
repositories {
maven {url "https://jitpack.io"}
}
}
2.Logger 初始化
注明一下: 其实三种方式初始化都是一样的,只是为了表达清晰些,分开来写。
注意事项:建议在Application进行初始化,但记得修改 AndroidManifest.xml 中 application 标签属性,添加 android:name=".MyApplication" ,不然不会打印。
- 1、方式一:初始化(不修改默认配置)
Logger.addLogAdapter(new AndroidLogAdapter());
- 2、方式二:初始化(修改默认配置)
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) // (可选)是否显示线程信息。 默认值为true
.methodCount(5) //(可选)要显示的方法行数。 默认2
.methodOffset(0) //(可选)设置调用堆栈的函数偏移值,0的话则从打印该Log的函数开始输出堆栈信息,默认是0
//.logStrategy(customLog) //(可选)更改要打印的日志策略。 默认LogCat
.tag("Logger") //(可选)TAG内容. 默认是 PRETTY_LOGGER
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
- 3、方式三:初始化(修改默认配置并且控制日志是否要输出)
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) // (可选)是否显示线程信息。 默认值为true
.methodCount(3) //(可选)要显示的方法行数。 默认2
.methodOffset(0) //(可选)设置调用堆栈的函数偏移值,0的话则从打印该Log的函数开始输出堆栈信息,默认是0
//.logStrategy(customLog) //(可选)更改要打印的日志策略。 默认LogCat
.tag("Logger") //(可选)TAG内容. 默认是 PRETTY_LOGGER
.build();
/**
* 如果需要将日志存储到本地文件,则需要使用DiskLogAdapter,同时需要声明存储权限,Logger 默认生成csv文件,存储在 /storage/emulated/0/logger目录下
* 如果针对不同的页面 Logger 的配置不同, 可以使用 Logger.clearLogAdapters(), 然后进行重新配置。
* 控制打印开关,通过适配器控制是否打印日志:只要覆盖isLoggable()方法,返回false-不打印,返回true-打印
* 临时修改TAG打印日志:Logger.t("临时TAG").d("");
*/
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy) {
@Override
public boolean isLoggable(int priority, String tag) {
return true;
}
});
3、Logger使用
Logger功能:支持打印方式:String,String format,数组,集合,XML和JSON 打印,支持日志存储到文件,支持输出线程方法等详细信息
Logger.d("debug");
Logger.e("error");
Logger.w("warning");
Logger.v("verbose");
Logger.i("information");
Logger.wtf("wtf!!!!");
Logger.d("hello %s", "world");
Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);