Android的日志工具Log

ops/2024/9/24 5:30:08/

文章目录

  • Android的日志工具Log
    • Log打印日志的5个方法
    • Log快捷输入
    • logcat中添加过滤器
    • logcat中的日志级别控制
    • 关键字过滤

Android的日志工具Log

Log打印日志的5个方法

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高一级。

其实很简单,一共就5个方法,当然每个方法还会有不同的重载,但那对你来说肯定不是什么难理解的地方了。我们现在就在HelloWorld项目中试一试日志工具好不好用吧。

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

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_world_layout);
Log.d("HelloWorldActivity", "onCreate execute");
}

**Log.d()方法中传入了两个参数:第一个参数是tag,一般传入当前的类名就好,主要用于对打印信息进行过滤;第二个参数是msg,即想要打印的具体的内容。**现在可以重新运行一下HelloWorld这个项目了,点击顶部工具栏上的运行按钮,等程序运行完毕,点击Android Studio底部工具栏的Android Monitor,在logcat中就可以看到打印信息了,如图所示:

在这里插入图片描述

logcat中的打印信息,其中,你不仅可以看到打印日志的内容和tag名,就连程序的包名、打印的时间以及应用程序的进程号都可以看到。

Log快捷输入

Log快捷输入,在Android Studio当中也是有的,比如你想打印一条debug级别的日志,那么只需要输入logd,然后按下Tab键,就会帮你自动补全一条完整的打印语句。输入logi,然后按下Tab键,会自动补全一条info级别的打印日志。输入logw,按下Tab键,会自动补全一条warn级别的打印日志,以此类推。

另外,由于Log的所有打印方法都要求传入一个tag参数,每次写一遍显然太过麻烦。这里还有一个小技巧,我们在onCreate()方法的外面输入logt,然后按下Tab键,这时就会以当前的类名作为值自动生成一个TAG常量,如下所示:

public class HelloWorldActivity extends AppCompatActivity {
private static final String TAG = "HelloWorldActivity";
...
}

logcat中添加过滤器

除了快捷输入之外,logcat中还能很轻松地添加过滤器,你可以在下图中看到我们目前所有的过滤器。

在这里插入图片描述

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

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

在这里插入图片描述

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

不知道你有没有体会到使用过滤器的好处,可能现在还没有吧。不过当你的程序打印出成百上千行日志的时候,你就会迫切地需要过滤器了。

logcat中的日志级别控制

看完了过滤器,再来看一下logcat中的日志级别控制吧。logcat中主要有5个级别,分别对应着上面介绍的5个方法,如图所示:

在这里插入图片描述

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

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

关键字过滤

最后我们再来看一下关键字过滤。如果使用过滤器加日志级别控制还是不能锁定到你想查看的日志内容的话,那么还可以通过关键字进行进一步的过滤,如图所示:

在这里插入图片描述

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


http://www.ppmy.cn/ops/96858.html

相关文章

【数据结构】关于冒泡排序,选择排序,插入排序,希尔排序,堆排序你到底了解多少???(超详解)

前言: 🌟🌟Hello家人们,这期讲解排序算法的原理,希望你能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/I1Ssq 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-C…

边缘计算下的图像识别:实现低延迟的实时智能处理

边缘计算下的图像识别在实现低延迟的实时智能处理方面展现出了显著的优势。以下是关于这一话题的详细分析: 一、边缘计算与图像识别的结合 1. 边缘计算的定义 边缘计算是一种分布式计算范式,它将计算任务、数据存储以及服务交付的功能从中心化的数据中…

《AI办公类工具PPT系列之二——iSlide AI》

一.简介 官网:iSlide- 让PPT设计简单起来 | PPT模板下载平台 iSlide AI是一款基于人工智能技术的PPT制作工具,它可以帮助用户快速高效地创建演示文稿 二.功能介绍 1. AI一键生成PPT 文档导入与解析:用户可以直接上传本地文档(如Word、Markdown、思维导图等),iSlide A…

Linux运维篇-yum命令报错 /lib64/libcurl.so.4相关

目录 项目场景:问题描述原因分析:解决方案: 项目场景: centos7,8,同样也适用openEuer,Kylin等redhat系的国产化操作系统 问题描述 在使用yum命令时报错: 主要报错信息为&#xff1…

Springboot企业人事管理系统---附源码121727

摘 要 由于数据库和数据仓库技术的快速发展,企业人事管理系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。人事管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。…

SpringSecurity认证鉴权流程

SpringSecurity认证鉴权流程 SpringSecurity的认证流程SpringSecurity的鉴权流程将用户交给Spring Security管理主要涉及以下几个步骤: SpringSecurity的认证流程 用户请求: 用户向应用程序发起请求,通常是访问受保护的资源(例如&…

《AOP实战》— 自定义注解

承接上文(传送门 —>《面试必考》 — AOP-CSDN博客),在被面试官拷打的时候,会被问到一个致命问题:“你了解aop吗?有具体的使用经验吗?” 你:......... 言尽于此,此篇…

MySQL中的distinct和group by哪个效率更高?

前言 大家好,我是月夜枫~~ 一、distinct和group by的区别 1.1.作用方式和应用场景 ‌group by和‌distinct的主要区别在于它们的作用方式和应用场景。 group by用于对数据进行分组和聚合操作,通常与聚合函数(如COUNT、SUM、AVG等&#xf…