终端中查看某个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输出,支持关键字筛选,支持输出到文件的主要内容,如果未能解决你的问题,请参考以下文章