Android开发实用技巧之三:定制自己的日志工具LogUtil.java

一:使用Android自带的日志工具Log取代java中传统System.out.printlin()。


(你也可以直接看二.定制自己的日志工具


在定义自己的日志工具前,我们首先得学会使用Android自带的日志工具Log取代java中传统System.out.printlin()。

因为System.out.printlin()打印日志没有日志级别、无法确定打印时间、不能添加过滤器并且不可控制。

而Android提供的Log刚好能解决以上问题。

Log类中的日志级别由低到高分别为:

Log.v()、  Log.d()、  Log.i()、  Log.w()、  Log.e()

用法简单,只需在需要打印的地方使用适当的级别,如:

Log.d("MainActivity","MainActivity start");

第一个参数是tag,一般传入类名,主要用于在过滤器中对打印信息就行过滤。第二个参数就是想要打印的具体内容。



二:定制自己的日志工具类

通过一我们学会了使用Android自带的Log类。但是,Log类在全局控制方面做的还是不足的。比如:现在我们在项目

中为了调试,在许多地方打印了大量日志,而这些打印信息在项目正式上线之后仍能正常显示,这样就会降低我们程序

的运行效率,还可能因为泄露机密带来安全问题。所以,为了避免尴尬的去一行行删除打印信息,我们可以通过写一个

自己的日志工具类解决这个问题:

public class LogUtil {

    public static final int VERBOSE = 1;

    public static final int DEBUG = 2;

    public static final int INFO = 3;

    public static final int WARN = 4;

    public static final int ERROR = 5;

    public static final int NOTHING = 6;

    //定义一个值,用于控制日子的打印行为
    public static final int LEVEL = VERBOSE ;

    public static void v(String tag, String msg){
        if (LEVEL<=VERBOSE){
            Log.v(tag, msg);
        }

    }

    public static void d(String tag, String msg){
        if (LEVEL<=DEBUG){
            Log.d(tag, msg);
        }

    }

    public static void i(String tag, String msg){
        if (LEVEL<=INFO){
            Log.i(tag, msg);
        }

    }

    public static void w(String tag, String msg){
        if (LEVEL<=WARN){
            Log.w(tag, msg);
        }

    }

    public static void e(String tag, String msg){
        if (LEVEL<=ERROR){
            Log.e(tag, msg);
        }

    }
    
}

然后我们在需要打印日志的地方通过调用LogUtil中的方法就可以实现打印了,比如

LogUtil.d("TAG", "debug log");

这样,我们就可以通过修改LEVEL的值来控制全局的打LEVEL等于印行为了。比如设置LEVEL等于VERBOSE就可以打印所有日志,设置LEVEL等于WARN则只答应警告级别以上的日志,那么,当项目要上线时,我们就可以通过设置LEVEL等于NOTHING来把所有日志屏蔽掉了。



参考:郭霖《第一行代码》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值