我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。
当前回答
这已经为我工作在git bash:
$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid
其他回答
在linux中,这对我来说是有效的:
adb logcat | grep `adb shell ps | grep your.package | awk '{print $2}'`
Linux和OS X
使用ps/grep/cut获取PID,然后使用grep获取具有该PID的logcat条目。下面是我使用的命令:
adb logcat | grep -F "`adb shell ps | grep com.asanayoga.asanarebel | tr -s [:space:] ' ' | cut -d' ' -f2`"
(您可以进一步改进正则表达式,以避免不相关的日志行包含相同的数字的理论问题,但这对我来说从来都不是问题)
这在匹配多个进程时也适用。
窗户
在Windows上,你可以这样做:
adb logcat | findstr com.example.package
5月17日更新
几年过去了,情况变了。Eclipse也不再受官方支持。这里有两种最新的方法:
1. Android工作室
在Android监视器工具箱中,您可以根据可调试进程过滤logcat。通常,当您开发应用程序时,它是一个可调试的过程。每隔一段时间我就会遇到这样的问题,然后我就会这样做:
工具-> Android ->启用ADB集成。 如果它已经启用,那么将其关闭,然后再打开 拔下移动设备的电源插头。
还有通过正则表达式和调试级别进行过滤的选项
2. logcat-color
如果你想使用基于终端的解决方案,这是adb logcat之上的一个漂亮的python包装器。这样做的好处是您可以保存多个配置并简单地重用它们。通过标记进行筛选非常可靠。你也可以过滤包只看到一个或多个应用程序的日志,但你启动logcat-color在启动你的应用程序之前。
旧的回答:
似乎我不能评论之前的答案,所以我将发布一个新的。 这是对Tom Mulcahy的回答的评论,说明了该命令应该如何更改,以便在大多数设备上工作,因为adb shell ps PID列是可变的。
注意:下面的命令适用于连接了许多设备的情况。所以需要设备id。否则,可以简单地省略括号'[',']'
1. 要找出pid的列,输入:
adb [-s DEVICE_ID] shell ps | head -n 1
现在记住PID的列号。编号从1开始。
2. 然后输入以下内容:
adb [-s DEVICE_ID] logcat | grep $(adb [-s DEVICE_ID] shell ps \
| grep "com.example" | awk -F" " ' {print $PUT_COLUMN_HERE}')
简单地把你记住的列放在PUT_COLUMN_HERE中,例如$5
警告
每次重新运行应用程序时,都必须重新运行第二个命令,因为应用程序从操作系统获得了一个新的PID。
这已经为我工作在git bash:
$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid
为了访问日志,首先需要安装ADB命令行工具。ADB命令行工具是android studio平台工具的一部分,可以从这里下载。在此之后,需要设置adb工具的path/environment变量。现在您可以从eclipse终端/ intellij终端或mac终端(如果您使用的是macbook)访问logcat。
adb logcat:获取整个logcat。
adb shell pidof 'com.example.debug':获取应用程序的进程id。
adb logcat pid=<pid>:获取特定于应用程序的logcat。
adb logcat pid=<pid>|grep 'sometext':根据某些文本对logcat进行过滤。
有关过滤日志猫的更多信息,请阅读此。
推荐文章
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件
- 修改抽射超时时间
- 如何通过数据从第二个活动到第一个活动时按回?——安卓
- 如何在android中获得当前前景活动上下文?
- 如何在Android中获取当前日期?
- 获取Android设备名称
- 在WebView中上传文件
- 加载HTML文件到WebView
- Android:为什么视图没有maxHeight ?
- 如何获得具有已知资源名称的资源id ?
- 在Android上将字符串转换为整数
- 为什么“System.out。”println“工作在Android?
- WebView显示err_cleartext_not_allowed尽管站点是HTTPS