欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-28 11:10:41
...

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中就可以看到打印消息了,如下所示:

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

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

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

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

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级别以上日志,就可以避免上面的问题发生。

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

相关标签: android java