我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。


当前回答

我有不同的方法,你可以尝试访问本地设备的shell。

亚行壳

然后是

Logcat | grep com.package.name

这个印刷品里都有那个包裹。

或者,您可以尝试颤振日志—详细

其他回答

添加过滤器

指定名称

选择你的过滤器。

我写了一个shell脚本,通过包名过滤logcat,我认为这比使用更可靠

ps | grep com.example.package | cut -c10-15

它使用/proc/$pid/cmdline找到实际的pid,然后在logcat上执行grep

https://gist.github.com/kevinxucs/7340e1b1dd2239a2b04a

这是Gavriel的applog.sh的另一个变体,支持多个设备和多个进程的应用程序:

#!/bin/sh
PKG=$1
shift

APPIDS=`adb $@ shell ps | awk -v PKG="$PKG" '
    (NR == 1){appcolumn=2; for (i=1; i<=NF; i++) if ($i=="PID") {appcolumn=i}}
    index($0,PKG){print $(appcolumn)}' | paste -d \| -s`

echo "PID's: $APPIDS"
adb $@ logcat -v color | awk  "(\$3 ~ /$APPIDS/){print \$0}"

使用方法:applog.sh com.example.my.package [-s <特定设备>]

这显然是一个针对从开发人员设备外部使用Logcat的问题,但是如果你想在设备上(以编程方式)显示Logcat输出,你只需要这个:

Runtime.getRuntime().exec("logcat " + android.os.Process.myPid() + " *:D");

末尾的*:D会过滤掉Debug日志级别以下的所有消息,但您可以省略它。

直接输出到,比如说,一个TextView,请看这里的例子。

在Windows 10上,使用Ionic,对我来说最有效的是将“findstr”与所有应用程序消息生成的“INFO:CONSOLE”结合起来。 所以,我在命令行中的命令是:

adb logcat | findstr INFO:CONSOLE