• 定制自己的日志工具


    为什么需要定制自己的日志工具呢?难道安卓自带的Log不好吗?
    虽然 Android 中自带的日志工具功能非常强大,但也不能说是完全没有缺点,例如在打印日志的控制方面就做得不够好

    打个比方,你正在编写一个比较庞大的项目,期间为了方便调试,在代码的很多地方都打印了大量的日志。最近项目已经基本完成了,但是却有一个非常让人头疼的问题,之前用于调试的那些日志,在项目正式上线之后仍然会照常打印,这样不仅会降低程序的运行效率,还有可能将一些机密性的数据泄露出去。那该怎么办呢,难道要一行一行把所有打印日志的代码都删掉?显然这不是什么好点子,不仅费时费力,而且以后你继续维护这个项目的时候可能还会需要这些日志。因此,最理想的情况是能够自由地控制日志的打印,当程序处于开发阶段就让日志打印出来,当程序上线了之后就把日志屏蔽掉。

    新建一个LogUtil类
     1 public class LogUtil {
     2 
     3     public static final int VERBOSE = 1;
     4 
     5     public static final int DEBUG = 2;
     6 
     7     public static final int INFO = 3;
     8 
     9     public static final int WARN = 4;
    10 
    11     public static final int ERROR = 5;
    12 
    13     public static final int NOTHING = 6;
    14 
    15     public static int level = VERBOSE;
    16 
    17     public static void v(String tag,String msg){
    18         if(level<=VERBOSE){//如果大于或者等于定义的标准就打印出来
    19             Log.v(tag, msg);
    20         }
    21     }
    22     public static void d(String tag,String msg){
    23         if(level<=DEBUG){
    24             Log.d(tag, msg);
    25         }
    26     }
    27     public static void i(String tag,String msg){
    28         if(level<=INFO){
    29             Log.i(tag, msg);
    30         }
    31     }
    32     public static void w(String tag,String msg){
    33         if(level<=WARN){
    34             Log.w(tag, msg);
    35         }
    36     }
    37     public static void e(String tag,String msg){
    38         if(level<=ERROR){
    39             Log.e(tag, msg);
    40         }
    41     }
    42 }

    这样就把一个自定义的日志工具创建好了,之后在项目里我们可以像使用普通的日志工具一样使用 LogUtil.

    比如打印一行 DEBUG 级别的日志就可以这样写:LogUtil.d("TAG", "debug log");

    打印一行 WARN 级别的日志就可以这样写:LogUtil.w("TAG", "warn log");

    然后我们只需要修改 LEVEL 常量的值,就可以自由地控制日志的打印行为了。

    比如让LEVEL 等于 VERBOSE 就可以把所有的日志都打印出来,让 LEVEL 等于 WARN 就可以只打印警告以上级别的日志,让 LEVEL 等于 NOTHING 就可以把所有日志都屏蔽掉。

    使用了这种方法之后,刚才所说的那个问题就不复存在了,你只需要在开发阶段将LEVEL 指定成 VERBOSE,当项目正式上线的时候将 LEVEL 指定成 NOTHING 就可以了。

  • 相关阅读:
    java 事务
    JPA概述以及它和Hibernate之间的关系
    [转]JavaWeb之 Servlet执行过程 与 生命周期
    j2EE的web.xml详解
    安装PyTorch 0.4.0
    [转]springmvc常用注解标签详解
    hibernate的dialect大全
    Hibernate快速入门
    DBUtils使用详解
    用户密码初始化
  • 原文地址:https://www.cnblogs.com/chase1/p/7137477.html
Copyright © 2020-2023  润新知