Android--掌握日志工具的使用

来源:互联网 发布:淘宝客做推广有用吗 编辑:程序博客网 时间:2024/05/18 07:16

Android–掌握日志工具的使用

我相信很多java新手都非常喜欢使用System.out.println()方法来打印日志,不过在真正的项目中是极度不建议使用该方法的。因为这种方法缺点太多了,比如日志打印不可控制、打印时间无法确定、不能添加过滤器等等。掌握日志工具的使用,对开发有极大的帮助,下面就开始介绍一下日志工具的使用。

Android中的日志工具类是Log(android.util.Log),这个类中提供了如下如下五个方法:

  • Log.v() 用于打印意义比较小的消息,对应级别verbose
  • Log.d()用于打印一些调试消息,一些对你调试程序和分析问题有帮助的消息。对应级别debug,比verbose高一级
  • Log.i() 用于打印一些比较重要的数据。对应级别info,比debug高一级
  • Log.w() 用于打印一些警告消息。对应级别warn,比info高一级
  • Log.e() 用于打印程序中的错误信息,比如程序进入到了catch语句中。对应级别error,比warn高一级

现在建一个新的Android程序,来试试日志工具的使用。

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

    private static final String TAG = "MainActivity";   @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);       Log.d(TAG,"onCreate execute"); }

Log.d()方法中传入了两个参数:第一个参数是tag,主要用于日志过滤;第二个参数是msg,就是日志内容。

运行程序,点击底部Android Monitr,在logcat中就可以看到打印消息了,如下所示:

这里写图片描述

2、logcat中可以很轻松的添加过滤器,点击Edit Filter Configuration就是配置过滤器,下图是过滤器配置界面,你可以根据tag、massage等进行过滤。

这里写图片描述

如果你感觉不到过滤器带给你的好处,那当你的程序打印出成百上千行日志的时候,你就会迫切需要过滤器了。

3、我们还可以自己编写一个日志工具类来自由的控制日志的打印,让日志工具更加符合自己的需求。下面给出一个例子:

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<=VERBOSE)            Log.e(tag,msg);    }}

可以看到上面LogUtil定义了5个常量分别对应日志5个级别,然后有一个level静态变量,还提供了5个自定义的日志方法。很容易可以看出,利用这个util类我们只要修改level的值,就可以达到控制日志打印的效果。(level=VERVOSE打印所有级别的日志,level=WARN打印warn级别以上日志,level=NOTHING不打印任何日志)

这个时候你可以有疑问,为什么要自定义日志工具类呢?打个比方,你正在编写一个比较庞大的项目,期间为了调试方便,在代码很多地方都打印了大量的日志。最近项目完成了,正式上线后会有一个让人头疼的问题,就是之前用于调试的那些日志照常打印,这样不仅会降低程序的运行效率,还有可能泄露机密数据。这个时候,如果我们使用的是自定义类,那在上线后,让程序只打印warn级别以上日志,就可以避免上面的问题发生。

好了,日志工具的运用就讲到这里,希望对你有帮助!!!

作者:陈伟杰:原文地址

原创粉丝点击