开源框架学习之Logger日志框架

一直有记录三方框架的使用和原理的想法,由于技术是有限再加上懒惰这个想法一直没有开始实践。看着别人写的一些系列文章写的都很精彩,就觉得不能再懒惰了,不能再拖着了。由于技术实力有限,正好最近也在选择日志框架,所以先从Logger开始记录。用logger开个头,后续会有其他的。

日常Android开发时经常会用到日志打印,主要用于追踪程序的运行信息,寻找bug相关的蛛丝马迹,Android系统为我们提供了日志打印的工具类android.util.Log,我们可以通过Log工具打印日志,比如Log.i("tag","xxx"),Log.d("tag","xxx") 等等。但是有些情况下系统提供的日志类并不能满足我们的开发需求,比如需要在打印的日志中能够体现出线程信息,格式化方法调用的结构树等等,相比系统的log类,Logger框架能够满足我们的开发需求。

Logger框架的基本使用:

引入框架:

目前的最新版本是2.2.0,在gradle中引入  implementation 'com.orhanobut:logger:2.2.0'

开始使用:

首先初始化Logger

Logger.addLogAdapter(new AndroidLogAdapter());

打印log

参考as的logcat级别,logger也设置了响应的打印级别,这几个级别分别是:VERBOSE、DEBUG、INFO、WARN、ERROR和ASSERT,对应到logger中的方法分别是Logger.v(String msg,Object...obj)、Logger.d(String msg,Object...obj)、Logger.i(String msg,Object...obj)、Logger.w(String msg,Object...obj)、Logger.e(String msg,Object...obj)和Logger.wtf(String msg,Object...obj)

比如要打印VERBOSE级别的log,可以调用Logger.v("xxx"),要打印INFO级别的log,可以调用Logger.i("xxx")

测试代码如下:

public void initLogger(){
//        FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder().methodCount(4).tag("MLogger").methodOffset(2).logStrategy(new LogcatLogStrategy()).build();
        Logger.addLogAdapter(new AndroidLogAdapter());
        Logger.d("d","hello");
//        Logger.v("v","hello");
//        Logger.i("v","hello");
//        Logger.e("e","hello");
    }

运行效果如下:

是不是很nice,Logger的显示效果分为四个部分,分别是 tag信息、线程信息、方法调用树、日志输出信息,上图是Logger的默认显示效果,其实Logger还提供了一套可以定制化的策略,接下来我们学习一下这个定制化策略。

Logger中提供了一个策略类来实现定制化需求,具体代码如下

FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder().
                showThreadInfo(true).//显示线程信息
                methodCount(4).//显示的方法数量
                tag("MLogger").//tag
                methodOffset(2).//方法名字在显示区域的偏移量
                logStrategy(new LogcatLogStrategy()).build();

这段代码使用建造者模式来定制显示策略,涉及的主要策略作用已在注释中说明。调用的时候需要将这个策略类作为参数传递给AndroidLogAdapter()。调用代码如下

Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
        Logger.d("d","hello");

按照上面的代码添加了显示策略之后日志打印效果就变成这样了

Logger日志框架的基本使用就先记录到这里,接下来会对Logger的实现原理进行分析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值