Android 如何优雅的打印日志

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值