每天记录学习的新知识 : com.orhanobut.logger.Logger

简介

有两个同名的 Logger
其一:java.util.logging.Logger ,来自Api28
其二:来自github , com.orhanobut.logger.Logger
本篇幅记录第二种

例~~~~

            FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
                    .showThreadInfo(false)  
                    .methodCount(3) 
//                    .methodOffset(1)  
//                    .logStrategy()
                    .tag("custom tag") 
                    .build();

            Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));

            Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy){
                @Override
                public boolean isLoggable(int priority, @Nullable String tag) {
                    return BuildConfig.DEBUG;
                }
            });

            Logger.e(s+"e");
            Logger.w(s+"w");
            Logger.i(s+"i");
            Logger.d(s+"d");
            Logger.v(s+"v");

            Logger.addLogAdapter(new DiskLogAdapter());

打印信息如下:
每天记录学习的新知识 : com.orhanobut.logger.Logger_第1张图片
1.添加库

 implementation 'com.orhanobut:logger:2.2.0'

如果引用不到,可以在工程的gradle内添加如下代码,进行尝试

buildscript {
    repositories {
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
    }
}

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

2.初始化
2.1 初始化参数

            FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
                    .showThreadInfo(false)  // 是否显示线程信息,默认为ture
                    .methodCount(3)         // 显示的方法行数,默认为2
//                    .methodOffset(1)        // 隐藏内部方法调用到偏移量,默认为5
//                    .logStrategy() // 更改要打印的日志策略。
                    .tag("custom tag")   // 每个日志的全局标记。默认PRETTY_LOGGER
                    .build();

            Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));



2.2 初始化要不要输出Log

            Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy){
                @Override
                public boolean isLoggable(int priority, @Nullable String tag) {
                    return BuildConfig.DEBUG;
                }
            });

2.3 初始化是否拷贝文件

            //保存的路径: /storage/emulated/0
            Logger.addLogAdapter(new DiskLogAdapter());

3.输出Log

            Logger.e(s+"e");
            Logger.w(s+"w");
            Logger.i(s+"i");
            Logger.d(s+"d");
            Logger.v(s+"v");

功能

线程信息:log在哪个线程
类信息:log在哪个类
方法信息:log在哪个方法的哪一行
漂亮地打印json
漂亮的打印XML
漂亮的换行分割
整洁的输出
跳转到源代码

优点

默认实现是对于android.util.Log的封装
弥补了“android的logcat的message有字符长度的限制,超过将直接截断”的缺陷
支持参数添加占位符来格式化字符串,Logger.d(“hello %s”, “world”);
支持直接打印List,Set,Map,数组类型等引用类型
指定任意TAG
配置初始化选项
支持自定义CustomLogAdapter实现LogAdapter,替换android.util.Log、

打印方式

Logger.v(String message); // VERBOSE级别,可添加占位符
Logger.d(Object object); // DEBUG级别,打印对象
Logger.d(String message); // DEBUG级别,可添加占位符
Logger.i(String message); // INFO级别,可添加占位符
Logger.w(String message); // WARN级别,可添加占位符
Logger.e(String message); // ERROR级别,可添加占位符
Logger.e(Throwable throwable, String message); // ERROR级别,可添加占位符
Logger.wtf(String message); // ASSERT级别,可添加占位符
Logger.xml(String xml); Logger.json(String json);


参考:
https://www.jianshu.com/p/31d2da0dceee

你可能感兴趣的:(Android,基础知识)