终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件相关的知识,希望对你有一定的参考价值。

参考技术A 在只安装了adb环境的情况下,如何查看某个app的日志,同时筛选关键字?

如何配置adb环境,请移步 mac下安装adb环境的三种方式


Logcat命令行工具

Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从您的应用使用 Log 类写入的消息。

android Studio 中,您也可以从 Logcat 窗口查看日志消息。这里我们通过 Logcat命令行工具 来查看app输出的log。

先将设备通过usb数据线连接到电脑,通过 adb devices 命令查看是否连接成功:

可以看到我的手机已经连接到adb了。

在终端中输入 adb logcat ,即可以看到设备的所有logcat输出:

不过这明显不是我们想要的,我们需要的是某个app下的logcat输出, Logcat命令行工具 中提供了相应的方式:

这里的 xxx 表示我们目标app对应的 pid 。

如何获取某个app对应的 pid 呢?

可以通过 adb shell dumpsys 包名 获取pid,不过需要我们在手机上 先打开这个app ,因为pid是分配给进程的,进程启动以后才会分配pid。

在最上面的输出中,我们也可以很方便的看到pid:

需要注意的是, pid是分配给进程的,如果app关闭了再重新打开,就会分配一个新的进程,同一个包名对应的pid就会变 。

除了上面的方式,我们还有另一种方式,也需要app处于打开状态:

可以清晰的看到我们目标包名com.tinytongtong.androidstudy的 pid为7948 。

接着使用我们获取到的pid,就可以输出目标app下的log了:

这里输出的logcat是app下所有的log,如果我们要定位具体问题还是远远不够的,还需要支持关键字筛选。

接着我们借助 grep 命令进行筛选,比如说我要搜索的关键字是"Lifecycle":

可以看到这里只输出了符合我关键字的log,任务基本完成。

当然了,如果想把输出结果保存到文件中,也是很方便的,在之前的命令后面添加 > logcat.txt ,之前命令的输出结果就会被重定向到 logcat.txt 文件中。

我们查看通过 cat logcat.txt 即可快速查看 logcat.txt 中的内容。

这里的 > 表示覆盖文件内容,如果要追加文件末尾,可以换成 >> 。

以上是关于终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 adb logcat 查看某个进程的输出日志

android logcat抓取app日志

adb抓取前3分钟的logcat

android 怎么使用应用的包名通过logcat命令来过滤某个应用的日志

APP 日志分析

windows cmd执行 adb logcat,怎么过滤输出结果