我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。
当前回答
这已经为我工作在git bash:
$ pid=$(adb shell ps | grep <package name> | cut -c11-15) ; adb logcat | grep $pid
其他回答
尝试:Window -> Preferences -> Android -> LogCat。修改字段“如果…显示logcat视图”的值为“VERBOSE”。它帮助了我。
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
对我来说,这适用于mac终端 找到你有adb的文件夹,然后在终端中键入下面的命令
./adb logcat MyTAG:V AndroidRuntime:E *:S
这里它将过滤MyTAG和AndroidRuntime的所有日志
把这个放到applog.sh
#!/bin/sh
PACKAGE=$1
APPPID=`adb -d shell ps | grep "${PACKAGE}" | cut -c10-15 | sed -e 's/ //g'`
adb -d logcat -v long \
| tr -d '\r' | sed -e '/^\[.*\]/ {N; s/\n/ /}' | grep -v '^$' \
| grep " ${APPPID}:"
然后: applog.sh com.example.my.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。
推荐文章
- 错误:与依赖项“com.google.code.findbugs:jsr305”冲突
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在Android中将字符串转换为Uri
- 如何在NestedScrollView内使用RecyclerView ?
- 移动到另一个EditText时,软键盘下一步点击Android
- Android应用中的GridView VS GridLayout
- Activity和FragmentActivity的区别
- 右对齐文本在android TextView
- 权限拒绝:start前台需要android.permission.FOREGROUND_SERVICE
- 在Android Studio的模拟器上截图
- 如何更改android操作栏的标题和图标
- Android Split字符串
- 让一个链接在安卓浏览器启动我的应用程序?
- 如何在Android工作室的外部库中添加一个jar ?