Android studio日志使用教程

进行Android开发离不开日志工具,我发现很多讲日志的博客还是Eclipse版的,所以写了一个Android Studio版的日志入门使用写给新手看下

 

当然

System.out.println("abc");也可以在日志工具中显示出来

不过和日志相比缺少了日志级别,日志过滤器等功能,

所以通常都是用log而不用System.out.println

 

先放个Logcat界面的图片

Android studio日志使用教程_第1张图片

Android studio日志使用教程_第2张图片

 

日志信息说明

现在我们打印出了我们想看到的日志信息,那这些日志信息是什么意思呢?

Android studio日志使用教程_第3张图片

从左到右说明:

打印日期,进程号-线程号/包名 日志级别(I就表示Info) Tag : 日志信息

 

日志级别5类:

1. Log.v()

这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别 verbose,是Android 日志里面级别最低的一种。

2. Log.d()

这个方法用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别 debug,比 verbose 高一级。

3. Log.i()

这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行为的那种。对应级别 info,比 debug 高一级。

4. Log.w()

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

5. Log.e()

这个方法用于打印一些应用执行时出现无法处理的严重错误,通常会导致程序无法继续运行,业务中断等严重故障,需要由用户处理,其重要程度比Warn高

6.还有一个最新的断言assert级别,我没用过就不讲了:)

 可以在Android studio选择级别过滤,verbose级别范围最大,error范围最小

通常我们写的时候用info级别和debug级别就行了,和Java开发的System.out.println一样的效果

Log.i("你好:", "这是我想要展示的日志内容");

Android studio日志使用教程_第4张图片

 

日志信息这么多我们怎么找到我们想看到的呢?

我们就要用到日志过滤

常用手段是选定日志级别

Android studio日志使用教程_第5张图片

然后再通过指定字段查找

Android studio日志使用教程_第6张图片

重点:真机调试的时候会持续不断的报出日志内容,原因是没有加过滤器,显示了手机所有的日志信息 

1.选择你正在调试的app软件

P.s.(选上面那个,下面那个是之前运行的已经Dead了) 

2.选择第一个:只展示选中程序的日志 

Android studio日志使用教程_第7张图片

当然我们也可以选第四个选项自定义日志过滤器

Android studio日志使用教程_第8张图片

不过我平时都是用查找指定字段来过滤

Android studio日志使用教程_第9张图片

 

左侧工具栏最常用到的就一个清空功能,第一个垃圾桶图标

 

定制自己的日志工具

在开发过程中总会打印很多日志用来调试程序,但程序上线要一行行删日志打印代码就很麻烦,可以自定义一个日志打印工具来管理要显示哪些级别日志,level为当前级别,VERBOSE表示全部显示,NOTHING表示全部不显示

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);
        }
    }
}

 

你可能感兴趣的:(软件使用问题,Android技术小点)