首页 > 其他分享 >工具篇 - 再探 Logcat

工具篇 - 再探 Logcat

时间:2022-11-14 10:37:04浏览次数:85  
标签:Logcat Log 监视器 消息 过滤器 工具 日志


LZ-Says:最近的 Cocos 真是让人无处下手,完全蒙蔽状态,无爱了,此时此刻,只想吟诗一首:生亦何欢,死亦何苦~


工具篇 - 再探 Logcat_优先级

前言

Android 开发数十载,人来人往,又如何?

回想过去的路,不禁感慨万千~

而今,借助官方,好好回顾下有关 Android 的点点滴滴~

Hi,Logcat

在 Android Studio 3.0 以前,Android Monitor 包含一个可以显示调试消息的 Logcat 监视器。Logcat 监视器既可以显示系统消息(例如何时发生了垃圾回收),也能显示我们使用 Log 类添加到应用中的消息。此监视器可以实时显示消息,也可以保留历史记录,以便我们查看较旧的消息。

要仅显示感兴趣的信息,可以创建过滤器,修改消息中显示的信息量,设置优先级,以便仅显示通过应用代码生成的消息,以及搜索日志。默认情况下,Logcat 监视器仅显示与最近运行的应用相关的日志输出。

如果应用引发异常,Logcat 监视器会显示一条消息,接着显示关联的堆栈跟踪,堆栈跟踪包含指向该代码的链接。此功能可以帮助我们修复错误和改进应用操作。

自 Android Studio 2.2 开始,Run 窗口还会显示当前正在运行的应用的日志消息。请注意,可以配置 Logcat 监视器显示,但无法配置 Run 窗口。

1. Logcat 消息格式

每个 Android 日志消息都有与其关联的标记和优先级。系统日志消息的标记是一个简短的字符串,其表示消息所源自的系统组件(例如,ActivityManager)。用户自定义的标记可以是我们认为有用的任意字符串,例如当前类的名称(建议的标记)。我们可以在 Log 方法调用中定义名称,例如:

Log.d(tag, message);

优先级是以下值之一:

  • V – 详细(最低优先级)
  • D – 调试
  • I – 信息
  • W – 警告
  • E – 错误
  • A – 详细

而日志消息显示的格式为:

date time PID-TID/package priority/tag: message

例如,我们现在输出一条 Log:

Log.v(“HLQ_Struggle”,”这是一条日志输出~”);

下面的日志消息的优先级为 V,标记为 AuthZen:

07-10 14:18:53.358 4024-4024/com.hlq.apktooldemo V/HLQ_Struggle: 这是一条日志输出~

PID 代表进程标识符,TID 则为线程标识符;如果仅有一个线程,两者可以相同。

2. 在 logcat 监视器中显示正在运行的应用

要显示特定应用的日志消息,请依次执行以下操作:

  1. 设置输入内容;
  2. 打开一个应用项目;
  3. 在硬件设备或模拟器上运行应用;
  4. 点击底部 Logcat 标签;
  5. (可选)选择不同的设备、模拟器或进程。

默认情况下,Logcat 监视器仅显示设备或模拟器上正在运行的应用的日志消息:


工具篇 - 再探 Logcat_Logcat_02

要更改此默认设置,直接手动过滤 Logcat 消息即可。

3. 设置日志级别

我们可以设置日志级别,以控制 Logcat 监视器中显示的消息数量。由此可以显示所有消息,也可以仅显示指示最严重状态的消息。

请记住,无论日志级别设置如何,Logcat 监视器都会继续收集所有消息。此设置仅决定 Logcat 监视器的显示内容。

要设置日志级别,请执行以下操作:

  • 在 Log level 菜单中,选择以下值之一:
  • Verbose: 显示所有日志消息(默认值);
  • Debug: 显示仅在开发期间有用的调试日志消息,以及此列表中较低的消息级别;
  • Info: 显示常规使用的预计日志消息,以及此列表中较低的消息级别;
  • Warn: 显示尚不是错误的潜在问题,以及此列表中较低的消息级别;
  • Error: 显示已经引发错误的问题,以及此列表中较低的消息级别:
  • Assert: 显示开发者预计绝不会发生的问题。

4. 搜索 Logcat 消息

要搜索 Logcat 监视器中当前显示的消息,请执行以下操作:

  1. (可选)如果想要使用正则表达式搜索模式,请选择 Regex;
  2. 在搜索字段中键入字符序列 “搜索”图标 Logcat 监视器将相应地显示更改;
  3. 按 Enter 键以在此会话期间将搜索字符串保存到菜单中;
  4. 要重复搜索,请从搜索菜单中选择。根据需要选择或取消选择 Regex(不建议使用此设置)

5. 过滤 logcat 消息

想要减少日志输出,最直接有效的方法便是,使用过滤器进行限制。

注:过滤器的应用范围为整个 Logcat 历史记录,而不仅仅是 Logcat 监视器中当前显示的消息。确保对其他显示选项进行相应设置,以便我们能够看到想要检查的过滤器输出。

要定义并应用过滤器,请执行以下操作:

在过滤器菜单中,选择一个过滤选项:

  • Show only selected application: 仅显示通过应用代码生成的消息(默认选项)。Logcat 监视器将使用活动应用的 PID 过滤日志消息。
  • No Filters: 不应用过滤器。无论选择哪个进程,Logcat 监视器都会显示设备中的所有日志消息。
  • Edit Filter Configuration: 创建或修改自定义过滤器。例如,我们可以创建一个过滤器,以同时查看两个应用中的日志消息。

定义过滤器后,还可以在菜单中选择它们。要从菜单中移除过滤器,请删除过滤器即可。

如果选择了 Edit Filter Configuration,请创建或修改过滤器。

  • 在 Create New Logcat Filter 对话框中指定过滤器参数:
  • Filter Name: 输入想要定义的过滤器的名称,或者从左侧面板中选择一个以修改现有过滤器。名称只能包含小写字符、下划线和数字。
  • Log Tag:(可选)指定标记。
  • Log Message:(可选)指定日志消息文本。
  • Package Name:(可选)指定软件包名称。
  • PID -(可选):指定进程 ID。
  • Log Level -(可选):选择日志级别。
  • Regex: 选择此选项可以为相关参数使用正则表达式。
  • 点击 +,将过滤器定义添加到左侧面板中。
  • 要移除过滤器,请在左侧面板中将其选中,然后点击 -。

完成后,点击 OK。如果您点击 Cancel,任何过滤器添加或修改操作都会丢失。

  • 确保能看到想要检查的日志消息。
    如果没有看到想要检查的日志消息,请尝试选择 No filters 并搜索特定日志消息。

6. 配置 logcat 标题显示

要自定义标题显示以仅显示感兴趣的信息,请执行以下操作:

  • 选择“Use Soft Wraps” 以查看整个消息,并防止其从右侧边缘消失;
  • 点击“Configure Logcat Header” 以指定想要显示或隐藏的消息的元素,然后点击 OK

7. 上下移动堆叠跟踪

在应用引发异常时,消息将包含方法调用的堆栈追踪。Logcat 监视器让我们可以在日志中快速定位堆栈追踪,并在代码编辑器中查看关联代码。如果需要,逆编译程序将派生我们可以查看的源代码。

要上下移动堆栈追踪并在代码编辑器中查看关联代码,请执行以下操作:

  • 点击“Up the Stack Trace” 可以移动到日志中相对于当前位置的前一个方法。
  • 点击“Down the Stack Trace” 可以移动到日志中相对于当前位置的下一个方法。

8. 移动到日志结尾

点击特定消息将停止显示消息。

要快速移动到日志结尾以查看实时消息流,请执行以下操作:

  • 点击“Scroll to the End”
  • 工具篇 - 再探 Logcat_Logcat_03

  • 按 End 键;
  • 滚动或按 Page Down 键,直至结尾

9. 打印和写入文件

要保留日志信息,可以将日志发送到打印机,将日志写入 PDF 文件,或者将日志复制并粘贴到文本文件中。

要打印日志或将其写入 PDF 文件,请执行以下操作:

  • 点击“Print”
  • 在 Android Studio 的 Print 对话框中,可以选择更改打印参数,然后点击 Print。
  • 在操作系统的 Print 对话框中,可以选择更改打印参数,然后点击 Print。
  • 可以设置参数,以将日志发送到打印机或将其写入 PDF 文件。

要将日志复制到文本文件,请执行以下操作:

  • 在 Logcat 监视器中,请选择然后复制日志文本;
    按 Ctrl+A (⌘A) 全选。
  • 打开文本编辑器并将文本粘贴到文件中。

10. 清除和重启日志

要清除(刷新)整个日志,请执行以下操作:

  • 点击“Clear logcat”

如果存在问题并且日志不再记录,可以重启日志:

  • 点击“Restart”

11. 向您的代码添加日志消息

可以通过 ​​Log​​ 类创建在 Logcat 监视器中显示的日志消息。一般来说,我们应使用以下日志方法,这些方法按照优先级从高到低(或者从最简略到最详细)的顺序列示:

  • Log.e(String, String)(错误)
  • Log.w(String, String)(警告)
  • Log.i(String, String)(信息)
  • Log.d(String, String)(调试)
  • Log.v(String, String)(详细)

请参阅 Log 类说明,查看更完整的选项列表。

除开发期间外,其他任何时候都绝不应将详细日志编译到应用中。调试日志虽然会编译,但会在运行时去掉,而错误、警告和信息日志会始终保留。

对于每种日志方法,第一个参数都应是唯一标记,第二个参数是消息。系统日志消息的标记是一个简短的字符串,其表示消息所源自的系统组件(例如,ActivityManager)。标记可以是我们认为有用的任意字符串,例如当前类的名称。

一种比较好的做法是,在要用于第一个参数的类中声明 TAG 常量。例如,我们可以按照以下步骤创建一条信息日志消息:

private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);

注:长度大于 23 个字符的标记名称在 logcat 输出中会被截断。

个人公众号

欢迎关注个人工作号,由于目前文章都属于原创,目前保证一周一篇~

也欢迎各位小哥哥有文章投给我哦~~~

来者不拒~~~


工具篇 - 再探 Logcat_android_04

参考资料

  1. 使用 Logcat 写入和查看日志:​​https://developer.android.google.cn/studio/debug/am-logcat​​;


标签:Logcat,Log,监视器,消息,过滤器,工具,日志
From: https://blog.51cto.com/u_13346181/5848470

相关文章

  • 阿里开源 Redis 数据迁移工具
    今天要推荐一个阿里巴巴开源工具redis-shake,一个Redis的数据迁移和清洗工具,工具使用起来比较简单,也经历过大厂的认证,正确性和稳定性都有保障。 Redis实例迁移到另一......
  • office2010添加宏到自定义快速访问工具栏
    1.建立相应的宏,名称分别:查找填充默认  2.点击“文件”菜单,“选项”卡  3.选择“快速访问工具栏”4.从“从下列位置选择命令”,选择“宏”5.则刚才的宏名自动出......
  • java时间工具类
    packagecom.example.httpdemo2.utils;importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.ArrayLi......
  • chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存
    1.常用保存Sources源码的两种方法1.1单个文件直接右键另存为1.2单个页面保存网页,就会把引用到的所有文件下载下来如果页面很多,文件也很多,静态资源也很多,那么得一......
  • Java数组工具类Arrays
    Arrays所在的包是Java.util.*,Arrays提供的全部是static方法。1.转字符串1.1一维数组--publicstaticStringtoString(int[]a)参数即可以是基础类型数组,也可以是包装......
  • Carbon copy cloner 6 for Mac(磁盘克隆备份工具)
    carboncopycloner6forMac是一款支持数据同步和备份的磁盘克隆备份工具,CarbonCopyCloner软件设计的初衷就是智能到让人忘记它的存在。界面简单、易于配置,但后台各种......
  • 系统宕机,内存溢出等典型问题排查思路及工具使用
     问题范围:平台典型后端问题,如宕机、服务响应慢、节点丢失、CPU高、内存高、数据库响应慢等。分析这类问题虽然没有固定套路,但是有大概方向。工具范围:平台自带服务质......
  • 群晖诊断工具 Diagnosis Tool
    终端输入安装synogearinstall Alltools:autojumpautojump_match.pycifsiostatdomain_test.shfilefiofix_idmap.shfreeiftopiostatiotopiperf3killlog......
  • charles抓包工具不能连接网络
    安装好了证书,也按照其他步骤都设置好了,华为手机也安装了证书,但是把手机的代理设置为charles代理地址后,手机网络就会显示不可上网,同时电脑的中的网页也无法打开浏览。按照网......
  • 懒人听书下载文件被加密?使用这个工具一键解决!
    直接通过懒人听书上下载的声音是经过加密的,没办法通过其他播放器进行播放,也没法进行声音文件分享给其他小伙伴。 如果不懂电脑技术,是没办法进行解密的,不过有个工具帮我......