组件化思想之Log的封装

前言

Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志

  • Log.v() :用于打印些最为琐碎的,意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种

  • Log.d() :用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的,对应级别debug,比verbose高一级

  • Log.i() : 用于打印一些较为重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行为数据。对应级别info,比debug高一级

  • Log.w() : 用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级

  • Log.e(): 用于打印程序中的错误信息,比如程序进入catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重的问题,必须尽快修复。对应级别error,比warn高一级。

其实很简单,一共就5个方法,当然每个方法还会有不同的重载,但对你来说不是什么难理解的地方了。

我们现在在HelloWorld项目中试一下系统自带的日志工具好不好用吧

打开HelloWorldActivity,在onCreate()方法中添加一行打印日志的语句,如下所示

protected void onCreate(Bundle savedInstanceState){
super.oncreate(savedInstanceState);
setContentView(R.layout.hello_world_layout);
Log.d("MainActivity","开始执行");
}

Log.d()方法传入了两个参数:第一个参数是tag,一般传入当前的类名就好,主要用于打印信息进行过滤;第二个参数是msg,即想要打印的具体内容。
现在可以用Shifit+F10运行HelloWorld这个项目了,或点击顶部工具类的运行按钮,在logcat中我们看到打印信息,如下所示:

10-08 07:30:24.423 1457-2245/com.lijizhi.myapplication D/MainActivity: 开始执行

从中你不仅可以看到打印日志的内容和Tag名,就连程序的包名,打印时间以及应用程序的进程号都可以看到。

那么我们为什么还要自定义Log并对其封装呢?

首先 log是有助于我们调式bug,或者看一些重要的信息,特别是在开发的过程中,难免会产生很多很多的log,但如果开发完了需要发正式的release版本,如果不撤销这些log日志,会多多少少影响着性能,还有就是也会被其他开发人员开到一些敏感的信息。android提供的Log这个类,功能太少了,如果不自己再封装下,很难达到自己的要求,比如你想在debug版本时可以随时看到日志,并且也可以给测试的同事看到,还有个场合就是正式发布的时候屏蔽所有的日志,还有些场景就是希望能看到更具体的这个log信息具体在哪个类中哪个方法中并且还可以看到具体在哪一行,它所在的线程是什么,那么Logger就可以做到。

具体操作步骤

首先建立util包,并在util包内新建一个名为L的Java Class,具体代码如下所示:

package com.lijizhi.myapplication.util;

import android.util.Log;

/*  项目名 MyApplication
  *  包名  com.lijizhi.myapplication.util
  *  文件名: L
  *  创建者 : LJZ
  *  创建时间:2017/10/8 0008 上午 7:41
  *  描述    Log的封装
*/
public class L {

    //开关
    public static final  boolean DEBUG = true;
    //TAG
    public static final String TAG = "myapplication";

    //五个等级  DIWE

    public static void d(String text){
        if(DEBUG){
            Log.d(TAG,text);
        }
    }

    public static void i(String text){
        if(DEBUG){
            Log.i(TAG,text);
        }
    }

    public static void w(String text){
        if(DEBUG){
            Log.w(TAG,text);
        }
    }

    public static void e(String text){
        if(DEBUG){
            Log.e(TAG,text);
        }
    }
}

那么怎么使用这个封装的Log类,其实很简单,比如我们要打印一条debug级别的日志,只要相应的位置添加下面这一行就好了

 L.d("开始执行");

这时再观察logcat的打印信息如下所示:

10-08 07:52:44.517 2437-2437/com.lijizhi.myapplication D/MainActivity: 开始执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值