Android 如何优雅的打印日志

作者: 容华谢后 | 来源:发表于2016-12-27 09:51 被阅读707次

    1.介绍

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

    Logger GitHub地址

    Logger提供了以下方法:

    • 打印线程的信息

    • 打印类的信息

    • 打印方法的信息

    • 优雅的打印JSON数据

    • 优雅的打印换行符

    • 打印简洁的信息

    • 点击日志跳转至源码

    感受下Logger打印的日志:

    JSON日志

    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!");
    
    INFO级别日志

    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);
    
    JSON日志

    打印XML

    String XML_CONTENT = "<resp><city>北京</city><updatetime>16:10</updatetime><wendu>23</wendu>" +
                    "<fengli>3级</fengli><shidu>19%</shidu><fengxiang>北风</fengxiang></resp>";
                    
    Logger.xml(XML_CONTENT);
    
    XML日志

    打印集合

    List<String> list = new ArrayList<>();
    list.add("Hello");
    list.add("World");
    
    Logger.d(list);
    
    集合日志

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

    4.打印异常

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

    5.格式化字符串

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

    Logger.d("Hello %s%s", "World", "!");
    
    格式化字符串

    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属性。

    <application
        android:name=".LoggerDemoApplication"
        ...
    </application>
    
    全局TAG

    自定义单个TAG

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

    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下载地址

    相关文章

      网友评论

        本文标题:Android 如何优雅的打印日志

        本文链接:https://www.haomeiwen.com/subject/qezjvttx.html