当前位置:   article > 正文

Android中的日志工具类Log详细介绍_android日志工具类

android日志工具类

Android

01: Android Studio目录结构介绍, 安卓开发入门
02: Android中的日志工具类Log详细介绍
03: 添加Button元素, 并且在活动中使用Toast和Menu
04: 安卓开发之Intent使用介绍(显式Intent和隐式Intent)
05: 安卓广播机制讲解(标准广播和有序广播)
06: 安卓广播实现强制下线功能(Kotlin语言实现)


1. Android中的日志工具类是Log ( android.util.Log ),这个类中提供了如下5个方法来供我们打印日志。


方法名称:方法功能:
Log.v()用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是 Android日志里面级别最低的一种。
Log.d()用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比 verbose高一级。
Log.i()用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比 debug高一级。
Log.w()用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比 info高一级。
Log.e()用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比 warn高一级。

1.1 为什么不使用System.out而去使用Log

我相信很多的Java新手都非常喜欢使用System.out.println()方法来打印日志,
不知道你是不是也喜欢这么做。不过在真正的项目开发中,
是极度不建议使用System.out.println()方法的!

为什么System.out.println()方法会这么遭大家唾弃呢?
经过我仔细分析之后,发现这个方法除了使用方便一点之外,其他就一无是处了。。
那缺点又在哪儿了呢?这个就太多了,
比如日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分…

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1.1.1 logcat中可以很轻松的添加过滤器

在这里插入图片描述

​目前只有3个过滤器,Show only selected application表示只显示当前选中程序的日志,Firebase是谷歌提供的一个分析工具,我们可以不用管它,No Filters相当于没有过滤器,会把所有的日志都显示出来。那可不可以自定义过滤器呢?当然可以,我们现在就来添加一个过滤器试试。

点击图中的Edit Filter Configuration,会弹出一个过滤器配置界面。
我们给过滤器起名叫data,并且让它对名为data的 tag进行过滤,如下图所示:
  • 1
  • 2

在这里插入图片描述
2.在这里插入图片描述

点击OK,你就会发现你已经多出了一个data过滤器。
当你点击这个过滤器的时候,你会发现刚才在onCreate()方法里打印的日志没了,
这是因为data这个过滤器只会显示tag名称为data的日志。
你可以尝试在oncreate()方法中把打印日志的语句改成
Log.d( " data","onCreateexecute"),	然后再次运行程序,
你就会在data过滤器下看到这行日志了。

不知道你有没有体会到使用过滤器的好处,可能现在还没有吧。
不过当你的程序打印出成百上千行日志的时候,你就会迫切地需要过滤器了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
public class HelloWorldActivity extends AppCompatActivity {
private static final String TAG="HelloWorldActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hello_world_layout);
        Log.d("data", "onCreate: execute");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

运行结果(在Android Monitor里面查看):
在这里插入图片描述

1.1.2 logcat 中的日志级别控制

logcat中主要有5个级别
在这里插入图片描述

当前我们选中的级别是verbose,也就是最低等级。
这意味着不管我们使用哪一个方法打印日志,这条日志都一定会显示出来。
而如果我们将级别选中为debug,
这时只有我们使用debug及以上级别方法打印的日志才会显示出来,
以此类推。你可以做一下试验,当你把 logcat中的级别选中为info、warn或者error时,
我们在oncreate()方法中打印的语句是不会显示的,
因为我们打印日志时使用的是Log.d()方法。

日志级别控制的好处就是,你可以很快地找到你所关心的那些日志。
相信如果让你从上千行日志中查找一条崩溃信息,你一定会抓狂的吧。
而现在你只需要将日志级别选中为 error,
那些不相干的琐碎信息就不会再干扰你的视线了。

最后我们再来看一下关键字过滤。
如果使用过滤器加日志级别控制还是不能锁定到你想查看的日志内容的话,
那么还可以通过关键字进行进一步的过滤,如下图所示:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

我们可以在输入框里输人关键字的内容,
这样只有符合关键字条件的日志才会显示出来,
从而能够快速定位到任何你想查看的日志。
另外还有一点需要注意,关键字过滤是支持正则表达式的,有了这个特性,
我们就可以构建出更加丰富的过滤条件。
  • 1
  • 2
  • 3
  • 4
  • 5


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/684744
推荐阅读
相关标签
  

闽ICP备14008679号