新版logcat最全使用指南

这篇具有很好参考价值的文章主要介绍了新版logcat最全使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

俗话说,工欲善其事,必先利其器。logcat是我们通过日志排查bug的重要武器之一。从某个版本开始,logcat改版了,改版之后,也许某些人觉得不太习惯,但是如果稍微学习下之后,就发现新版的logcat真的比老版本的好多太多。

也许某个人懒,不太愿意去android的官网查看官方介绍,那么本地特别适合你,本文就是对官网介绍的详细说明以及实例的演示。

android官网logcat的相关介绍。

https://developer.android.google.cn/studio/debug/logcat?hl=zh-cn

logcat界面基本介绍

首先介绍下logcat界面上的组成:

logcat,安卓,android,logcat

1.顶部框

名称

说明

TAB栏

一个TAB栏对应一个logcat显示框,可以配置多个

设备

当同时连接太多设备时,可以选择不同的设备显示其logcat

筛选框

对输出的logcat按照规则进行筛选,具体筛选的规则第二章来讲

配置按钮

对logcat显示的区域,位置,大小等等进行配置

2.左侧栏

名称

说明

暂停

暂停logcat的日志输出,使其保持在当前状态。

这个功能很适合我们排查bug时发现了一场日志,避免后面的持续输出的日志的影响。

重启

重启logcat功能。

置底按钮

logc不断输出,使显示的log内容一直是最新的,也就是现实log内容的最底部。

往上查找

往上查找最近一次的堆栈日志。

往下查找

往下查找最近一次的堆栈日志。

分行显示

有时候一个logcat内容输出太多,默认一行展示不下就缩略了。选择多行显示时,会分成多行显示。

配置显示内容

对内容框中显示的内容进行配置

分成多块显示

底部框分成两块,分别独立显示logcat

截屏

截屏功能

录屏

录屏功能

3.搜索栏

名称

说明

搜索内容

输入搜索的内容,这里支持区分大小写,单词匹配,转义。

向上

向上查找

向下

向下查找

搜索范围选择

选择搜索的范围,比如所有类型,评论中,字符串中等等

4.内容框

名称

说明

时间

日志输出的时间,这里的时间为手机上的时间。

进程ID和线程ID

进程ID和线程ID,这里的线程ID指的是在linux虚拟机中的线程ID。

TAG

我们日志中的tag。

进程名

进程名,如果是APP应用的话一般为包名。

日志优先级

共有六种登记,分别为verbose/debug/info/warn/error/assert

日志内容

我们日志中的msg。

筛选功能

1.包名

我们可以根据包名来对log的内容进行筛选,如果我们筛选的包名是com.xt.appplugin ,则可以在筛选框输入:package:com.xt.appplugin,这样筛选出来的log就只是com.xt.appplugin这个应用输出的了。

logcat,安卓,android,logcat

如果当前调试的应用就是com.xt.appplugin的话,我们也可以输入:package:mine,mine代表就是当前应用,如下:

logcat,安卓,android,logcat

2.进程名

进程名和包名有什么区别呢?因为一个应用可以多进程,如果我们只关心其中某一个进程的日志输出,就可以使用这个功能。

为了方便读者理解,我们举例说明一下,测试代码如下:

//Activity中
findViewById(R.id.text1).setOnClickListener(v -> {
    Log.i("lxltest", "button1 press");
    Intent intent = new Intent(this, TestService.class);
    startService(intent);
});
//Service中
public class TestService extends Service {
    @Override
    public void onCreate() {
        super.onCreate();
        Log.i("lxltest", this.getClass().getSimpleName() + ",onCreate");
    }
}

如果我们输入的筛选内容是:package:com.xt.appplugin

则输出日志内容为:

2023-03-16 10:46:07.059  9333-9333  lxltest                 com.xt.appplugin                     I  button1 press
---------------------------- PROCESS STARTED (9381) for package com.xt.appplugin ----------------------------
2023-03-16 10:46:07.215  9381-9381  ziparchive              com.xt.appplugin                     W  Unable to open '/data/data/com.xt.appplugin/code_cache/.overlay/base.apk/classes3.dm': No such file or directory
2023-03-16 10:46:07.216  9381-9381  .appplugin:aaaa         com.xt.appplugin                     W  ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/data/data/com.xt.appplugin/code_cache/.overlay/base.apk/classes3.dex*1426120062])
2023-03-16 10:46:07.230  9381-9381  GraphicsEnvironment     com.xt.appplugin                     V  ANGLE Developer option for 'com.xt.appplugin' set to: 'default'
2023-03-16 10:46:07.230  9381-9381  GraphicsEnvironment     com.xt.appplugin                     V  ANGLE GameManagerService for com.xt.appplugin: false
2023-03-16 10:46:07.231  9381-9381  GraphicsEnvironment     com.xt.appplugin                     V  Updatable production driver is not supported on the device.
2023-03-16 10:46:07.236  9381-9381  NetworkSecurityConfig   com.xt.appplugin                     D  No Network Security Config specified, using platform default
2023-03-16 10:46:07.236  9381-9381  NetworkSecurityConfig   com.xt.appplugin                     D  No Network Security Config specified, using platform default
2023-03-16 10:46:07.239  9381-9381  lxltest                 com.xt.appplugin 

而我们输入的筛选内容如果是:process:com.xt.appplugin:aaaa

则输出内容是:

---------------------------- PROCESS STARTED (9591) for package com.xt.appplugin ----------------------------
2023-03-16 10:47:08.735  9591-9591  ziparchive              com.xt.appplugin                     W  Unable to open '/data/data/com.xt.appplugin/code_cache/.overlay/base.apk/classes3.dm': No such file or directory
2023-03-16 10:47:08.737  9591-9591  .appplugin:aaaa         com.xt.appplugin                     W  ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/data/data/com.xt.appplugin/code_cache/.overlay/base.apk/classes3.dex*1426120062])
2023-03-16 10:47:08.750  9591-9591  GraphicsEnvironment     com.xt.appplugin                     V  ANGLE Developer option for 'com.xt.appplugin' set to: 'default'
2023-03-16 10:47:08.751  9591-9591  GraphicsEnvironment     com.xt.appplugin                     V  ANGLE GameManagerService for com.xt.appplugin: false
2023-03-16 10:47:08.751  9591-9591  GraphicsEnvironment     com.xt.appplugin                     V  Updatable production driver is not supported on the device.
2023-03-16 10:47:08.756  9591-9591  NetworkSecurityConfig   com.xt.appplugin                     D  No Network Security Config specified, using platform default
2023-03-16 10:47:08.757  9591-9591  NetworkSecurityConfig   com.xt.appplugin                     D  No Network Security Config specified, using platform default
2023-03-16 10:47:08.760  9591-9591  lxltest                 com.xt.appplugin                     I  TestService,onCreate
2023-03-16 10:47:13.687  9591-9602  System                  com.xt.appplugin                     W  A resource failed to call close. 

区别其实就是少了主进程的下面这条日志:

2023-03-16 10:46:07.059  9333-9333  lxltest                 com.xt.appplugin                     I  button1 press

3.TAG

TAG就比较容易理解了,根据输入的TAG进行筛选。这里的tag使用的是模糊匹配。

比如下面代码:

Log.i("lxltest", "button press");
Log.e("lxl", "button end");

如果我们使用的是:tag:lxl

则最终的输出内容就是,会把所有tag以lxl为前缀的日志全部筛选出来。

2023-03-16 10:49:53.200  9535-9535  lxltest                 com.xt.appplugin                     I  button press
2023-03-16 10:49:53.200  9535-9535  lxl                     com.xt.appplugin   

而如果使用lxltest,则只会筛选出button press这一条了。

4.日志级别

日志级别使用的关键词是level,从低到高分别是:verbose/debug/info/warn/error/assert六种级别。

筛选低级别的日志可以打印高级别的日志,反之则不行。

我们仍然用代码来验证下:

Log.v("lxltest", "level verbose");
Log.d("lxltest", "level debug");
Log.i("lxltest", "level info");
Log.w("lxltest", "level warn");
Log.e("lxltest", "level error");
//打印assert级别的日志
Log.println(Log.ASSERT, "lxltest", "level assert");

如果筛选框输入的是:level:verbose,则日志内容输入如下:

logcat,安卓,android,logcat

如果筛选框输入的是:level:info,则日志内容输入如下:

logcat,安卓,android,logcat

如果筛选框输入的是:level:assert,则日志内容输入如下:

logcat,安卓,android,logcat

5.内容

默认输出全部日志如下:

logcat,安卓,android,logcat

内容筛选支持模糊搜索,筛选框输入:message:level,因为level对所有的字符串都生效,所以日志全部输出,显示如下:

logcat,安卓,android,logcat 筛选框输入message:level info,因为只能匹配level info这一项,所以显示内容如下:

logcat,安卓,android,logcat

内容筛选时,输入也可以输入message:'level info'和也可以输入message:level info的效果是一样的。

6.时间

关键词age,我们可以通过这个关键词对日志以时间纬度进行一定的筛选。

比如我想筛选10分钟内的所有日志,则筛选框输入:age:10m即可,其它时间同理,最大支持到天。

单位

介绍

s

m

分钟

h

小时

d

值得注意的是,这里的筛选时间指的是以电脑时间对日志的时间进行筛选。举例例子,电脑时间为12:30,手机时间为12:00。筛选10m内所有日志,AS会去寻找所有时间范围在12:20到12:30之间的日志,这肯定是找不到的,所以最终的日志显示就是空。所以使用这一筛选项时,务必保证手机和电脑时间是同步的。

7.多选-且

大多数情况下,单一的某一个筛选条件肯定是不够的,所以就需要多个筛选条件组合起来用。

logcat筛选框中,如果同时输入多个条件,默认情况下不同类型的筛选,是且的关系。

比如如下的日志:

Log.v("lxltest", "level verbose");
Log.d("lxltest", "level debug");
Log.i("lxltest", "xxxxx info");
Log.w("lxltest", "level warn");
Log.e("lxltest", "level error");
Log.println(Log.ASSERT, "lxltest", "level assert");

筛选条件输入两个:message:level level:warn

这时候level verbose的这条日志就会被过滤掉,只显示其余的3条日志,xxxxx info

logcat,安卓,android,logcat

如果是相同类型的筛选,则默认是或的关系,比如还是上面的那个例子,

我们输入筛选条件:message:level message:info

因为上面六个选项中,使用模糊匹配,全部满足,所以六条日志全部显示出来了

logcat,安卓,android,logcat

如果相同类型仍然进行且的筛选,则我们需要改一下筛选条件:message:level & message:warn

这时候同时满足message中包含level和warn的只有level warn这一条,所以也就展示了这一条。

logcat,安卓,android,logcat

8.多选-或

刚才讲过,如果如果同时输入多个不同条件的筛选项,那么是且的关系。如果我们想改成或应该怎么办呢?

还是上面那个例子,我们改一下筛选项:message:level | level:warn

这时候就变成了满足message中包含level或者日志等于大于等于warn的才显示。

logcat,安卓,android,logcat

9.多选-组合

上面讲了种种筛选的场景,如果仍然无法满足我们的需求怎么办?这时候我们就要使用灵活多样的组合了。

比如来一个实际的场景,我想监控从A应用点击按钮开始,跳转到B应用页面的完整日志流程,其中就包含了多种条件的组合。

1.进程名为com.xt.appplugin(应用A),system_server(系统应用)或com.xt.client(应用B)

2.tag为lxltest或者Activity

3.日志级别为debug

则我们组合上面所列的各种筛选条件,如下:

(process:system_server | process:com.xt.appplugin | process:com.xt.client) & level:debug & (tag:lxltest | tag:Activity)

最终点击按钮(button click),经过系统分发,最终跳转到了应用B。

日志结果如下,我们可以看到跨越三个进程的相关日志。

logcat,安卓,android,logcat

界面配置

也许有的人会吐槽,新版本的msg太短了,有的吐槽一屏显示的内容太少,别急,通过界面配置,可以打造出我们想要的dream window。

左侧栏功能介绍

首先我们看一下左侧栏有哪些功能

logcat,安卓,android,logcat

1.日志清空

顾名思义,清空日志内容。

2.日志暂停

我们排查BUG的时候,往往发现问题后还没来得及仔细看,相关的就被后来的日志给挤走了。这时候如果点击了暂停按钮,新的日志就不会继续输出,方面我们排查问题了。

3.logcat重启

顾名思义,重启logcat,如果遇到log不输出等问题可以点击这个按钮。

4.光标置底

选中时,有最新的日志输出时右侧的进度条会自动切换到最底部。

logcat,安卓,android,logcat

取消选中时,则不会固定在最底部

logcat,安卓,android,logcat

5.定位上一个/下一个堆栈

当有异常时,点击这个按钮会自动帮我们切换到对应的代码中。

logcat,安卓,android,logcat

点击下时则帮我们切换到at android.os.Looper.loopOnce(Looper.java:201)这一行所对应的代码。

6.分行显示

不分行显示时:

logcat,安卓,android,logcat

分行显示时:

logcat,安卓,android,logcat

7.配置显示内容

目前显示的内容包括时间/进程-线程ID/TAG/进程名/日志级别/MSG内容,是不是觉得太多?如果我只是调试自己的应用,就没必要关心其它进程的日志信息。那么我们就可以进行配置

logcat,安卓,android,logcat

比如作者删除了进程名和包名,msg可显示的区域一下子就变多了。

logcat,安卓,android,logcat

8.分屏显示

可以同时显示两块logcat区域,我们可以是上下还是左右的方式显示

logcat,安卓,android,logcat

9.截屏和录屏

顾名思义,就不过多解释了

顶部框功能集合介绍

顶部功能包括TAB栏,配置按钮

logcat,安卓,android,logcat

1.TAB栏

tab栏可以配置多个logcat显示框,比如作者就配置了两个logcat框,可以自由切换。

logcat,安卓,android,logcat

2.配置显示模式

首先我们来讲配置->View Mode,这里可以配置我们期望日志框展示的模式。

logcat,安卓,android,logcat

比如作者最经常使用的Float模式,一整屏显示日志,超级爽。

logcat,安卓,android,logcat

3.配置显示区域

接下来讲配置->Move to的功能。这里可以配置日志框显示的区域。

logcat,安卓,android,logcat

 比如改成Left Top

logcat,安卓,android,logcat文章来源地址https://www.toymoban.com/news/detail-779256.html

到了这里,关于新版logcat最全使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Postman使用方法指南,最全面的教程

    Postman使用教程 一、Postman介绍 ​ Postman是一个英语单词,名词,作名词时意为“邮递员;邮差”。 ​ Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的

    2024年02月06日
    浏览(52)
  • 【Python爬虫】selenium4新版本使用指南

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11) , Mozilla Firefox , Safari , Google Chrome , Opera , Edge 等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能

    2024年02月06日
    浏览(49)
  • 2023最新版Python 3.12.0安装使用指南

    Python is a programming language that lets you work quickly and integrate systems more effectively. - www.python.org 要进行Python软件开发,首先要安装Python软件包。 本文简要介绍的Python 3最新版3.12.0的安装过程,希望对您有所帮助。 首先,访问Python官网:https://www.python.org 在主页上方导航栏,选择 Do

    2024年02月08日
    浏览(52)
  • Android 新版 Logcat 操作小技巧

    新版的Android Studio中启用了新的 Logcat,有些小技巧这里介绍一下: 1. Logcat启动 当应用程序启动或停止(关闭或崩溃)时,新的 logcat 会显示额外的消息。它会包含新的消息、进程 ID 和包名称。 2. Logcat 搜索 Logcat 提供了搜索栏,有非常丰富的搜索逻辑,下面来聊一下我们用的

    2023年04月11日
    浏览(80)
  • 新版Android Studio Logcat 筛选日志

    下载了新版的Android Studio,android-studio-2022.3.1.21-mac_arm,记录一下新版本AS的logcat过滤日志条件 1.1 过滤当前包名的日志 1.2 过滤其他包名日志 在控制台输入 就可以筛选所有info级别的日志 3.1 筛选单个tag 比如想筛选MainActivity的所有日志 那么在控制台可以看到所有MainActivity的日志

    2024年02月22日
    浏览(47)
  • 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总

    1.1、PLSQL 下载链接 1.2、PLSQL下载链接,包含64位和32位。选择64位下载就好了。 1.3、推荐大家下载14.0.6版本的PLSQL,一般不推荐下载最新的,最新的虽然不一定有bug,但是遇到了就很恶心,但是上一个版本基本上就很稳定了。14.0.6不用下载chinese语言包,就是下图的Chinese Langua

    2024年01月19日
    浏览(43)
  • Android Studio新版本logcat过滤说明

    按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package=:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考:正则表达式 – 简介 | 菜鸟教程 -package:反向过滤 -pack

    2024年02月12日
    浏览(39)
  • 建议收藏,最全ChatGPT 中文调教指南:提供各个领域的角色提示词(prompts)及使用技巧,当然也有不正经指南

    ChatGPT是一种基于GPT(Generative Pre-trained Transformer)模型的聊天机器人,能够回答用户提出的问题和进行对话。它是由OpenAI开发的人工智能产品,具有自然语言处理和深度学习技术。 ChatGPT在日常的对话中,表现的非常的完美,当在其他的场景希望使用ChatGPT来解决问题的时候,

    2024年02月06日
    浏览(53)
  • 开源、跨平台安卓摸鱼(投屏)软件 Scrcpy 中文使用指南

    废话不说,先上链接:GitHub上的Scrcpy Scrcpy 可以将手机画面投射到电脑上,让你可以在电脑上对手机进行操控。Scrcpy 通过 USB 或 Wi-Fi 与安卓手机相连,不需要在手机上安装任何 app,也不需要取得 ROOT 权限。 简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘

    2024年02月12日
    浏览(64)
  • ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)

    如果你还不知道如何注册和使用,可看末尾,手把手教你。 ChatGPT 是一种基于自然语言处理技术的聊天机器人,它是由 OpenAI 公司开发的,使用了最新的语言模型技术。 ChatGPT 能够理解和产生自然语言,可以模拟人类的对话,回答各种问题,提供相关的建议和信息,并且具有

    2024年02月11日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包