1

我在 Eclipse 中使用 Logcat。我一直无法在网上找到这样的文档告诉我,但是假设单击 V、D、I、E 等按钮应该将 Logcat 输出限制到该管道?无论我选择哪个,每个 logcat 输出都会被喷出,这使得调试几乎不可能。

有人可以告诉我如何只显示调试输出,即 Log.d(..) 打印吗?我认为使用过滤器是不可能的,因为我尝试使用日志级别“调试”和空标签和 pid 字段创建一个过滤器,但这只是再次打印所有日志输出。

非常感谢!

更新

因此,感谢下面 Aleadam 的链接,我现在知道 V/D/E/ 等是“优先级”,并且包括那些低于自身的优先级。似乎不可能仅限于 D(ebug) 输出,但至少我知道如何限制为 D,V,因为 V(erbose) 是唯一低于 Debug 的优先级:

adb logcat *:W

当然,这必须通过命令行来完成,所以我现在要弄清楚如何在 Eclipse 中使用相同的策略。这些按钮真的不适合我,我不知道为什么,但这令人沮丧!

非常感谢您发布的所有信息,伙计们。

4

3 回答 3

2

只要在 Log 类中使用适当的 API 调用记录这些按钮,它们就应该按照您描述的方式工作。http://developer.android.com/reference/android/util/Log.html

正则表达式/通配符不起作用。大约一年前我请求了一个错误。http://code.google.com/p/android/issues/detail?id=11580&can=4&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

于 2011-05-04T19:27:54.287 回答
2

adb logcat *:D 不仅会显示调试,还会显示具有调试优先级或更高优先级的所有内容。

例如,adb logcat *:E > err.log将仅保存错误。

对于许多选项,请在此处检查“过滤日志输出”:http: //developer.android.com/guide/developing/tools/adb.html#logcat

如果您在 linux 下运行,请使用 grep。如果您在 Windows 上,请使用外壳:(例如adb shell "logcat |grep 'D\/'"

于 2011-05-04T19:30:31.713 回答
1

过滤在我的系统上有效,但我指定了一个日志标签。然后,这会在 Log 旁边创建一个新按钮。因此,对于日志标记“QPR”,我看到 [Log][QPR] 按钮,当我按下 [QPR] 时,我只看到在 Log.d(TAG,"onCreate",e) 中标记为“QPR”的日志记录;

至少在我的系统上,如果我点击 [Log] (E) 我只会得到错误。

希望有帮助,日航

于 2011-05-04T19:42:49.003 回答