1、Logger简介
Logger相对系统自带log,输出格式清晰,功能更全,使用方便
github:https://github.com/orhanobut/logger
2、简单使用
1)添加依赖
implementation 'com.orhanobut:logger:2.2.0'
2)初始化
Logger.addLogAdapter(new AndroidLogAdapter());
3)使用
Logger.d("hello");
3、修改默认配置
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) //(可选)是否显示线程信息。 默认值为true
.methodCount(2) // (可选)要显示的方法行数。 默认2
.methodOffset(7) // (可选)设置调用堆栈的函数偏移值,0的话则从打印该Log的函数开始输出堆栈信息,默认是0
.logStrategy(customLog) //(可选)更改要打印的日志策略。 默认LogCat
.tag("MyTAG") //(可选)每个日志的全局标记。 默认PRETTY_LOGGER(如上图)
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
一般使用默认配置即可
4、设置标签
1)设置全局标签,如同修改默认参数一样
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.tag("MyTAG")
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
2)设置局部标签
Logger.t("TAG").d("tag hello");
5、关闭日志输出
当 isLoggable 返回true时输出日志,否则不输出
Logger.addLogAdapter(new AndroidLogAdapter() {
@Override public boolean isLoggable(int priority, String tag) {
return BuildConfig.DEBUG;
}
});
可根据参数 priority、 tag 选择性的关闭打开日志
6、写日志到文本
写到日志,需要写入权限
AndroidManifest.xml申请,还要在动态申请
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
开启写入配置
CsvFormatStrategy formatStrategy = CsvFormatStrategy.newBuilder()
.tag("custom")
.build();
Logger.addLogAdapter(new DiskLogAdapter(formatStrategy));
从CsvFormatStrategy源码中看到,设置后日志将会写到根目录logger文件夹下的文件中
String diskPath = Environment.getExternalStorageDirectory().getAbsolutePath();
String folder = diskPath + File.separatorChar + "logger";
当日志文件超过500K时,将新建文件
private static final int MAX_BYTES = 500 * 1024; // 500K averages to a 4000 lines per file
7、注意
如果要写到文件,同时也要在控制台中看到,需要同时添加两个适配器
CsvFormatStrategy formatStrategy = CsvFormatStrategy.newBuilder()
.tag("custom")
.build();
Logger.addLogAdapter(new DiskLogAdapter(formatStrategy));
Logger.addLogAdapter(new AndroidLogAdapter()
{
// 是否开启打印功能,返回true则打印,否则不打印
@Override
public boolean isLoggable(int priority, String tag)
{
return BuildConfig.DEBUG;
}
});