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

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

在只安装了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 中的内容。

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

试试管道

cat /usr/local/...../catalina.log | grep username | grep time

more /usr/local/...../catalina.log | grep username | grep time

username 是你的用户名 time是时间,时间格式请参考catalina.log里面的格式


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8466506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存