如何在Eclipse LogCat查看器中过滤掉标记名

时间:2011-10-25 13:20:02

标签: android eclipse logcat

我有一个Android应用程序“垃圾”LogCat,我想删除它的logcat条目,以使输出更具可读性。

是否可以使用过滤器删除特定标记名称的LogCat条目?或者是一种能够解决问题的搜索模式?

7 个答案:

答案 0 :(得分:180)

是。创建一个过滤器,其中“按日志标记”字段为

^(?!.*(MYTAG)).*$

其中MYTAG是您不希望看到的标记。我不是一个正则表达式专家(一个“regexpert”?;-))所以可能有一种更简单的方法来做这种否定,但我只是尝试了它并且它有效。

您可以在Log Cat消息区域上方的字段中使用过滤器,方法是输入过滤字符串,如下所示:

tag:^(?!.*(DeskClock|dalvik|wpa)).*$

将显示所有消息标签“DeskClock”,“dalvik”和“wpa”。

答案 1 :(得分:9)

这似乎与问题没有直接关系,但这里有一个正则表达式,当您将其放入标记过滤器as described by Rob时,会过滤掉大部分系统生成的日志。

^(?!(WifiMulticast|WifiHW|MtpService|PushClient|InputMethodManager|Provider|SurfaceTextureClient|ImageLoader|dalvikvm|OpenGLRenderer|skia|AbsListView|MediaPlayer|AudioManager|VelocityTracker|Drv|Jpeg|CdpDrv|IspDrv|TpipeDrv|iio|ImgScaler|IMG_MMU|ResMgrDrv|JpgDecComp|JpgDecPipe|mHalJpgDec|PipeMgrDrv|mHalJpgParser|jdwp|libEGL|Zygote|Trace|InputEventReceiver|SpannableStringBuilder|IInputConnectionWrapper|MotionRecognitionManager|Choreographer|v_galz|SensorManager|Sensors|GC|LockPatternUtils|SignalStrength|STATUSBAR-BatteryController|BatteryService|STATUSBAR-PhoneStatusBar|WifiP2pStateTracker|Watchdog|AlarmManager|BatteryStatsImpl|STATUSBAR-Clock))

我不断更新这个标签列表,因为我遇到他们在不同设备上进行测试。该列表并非详尽无遗,您可以自由地为此答案做出贡献。我相信这会为许多人节省一个小时。

如果还有其他其他日志需要过滤掉,请使用“|”将它们附加到此正则表达式'性格。

答案 2 :(得分:8)

取决于您查看logcat的方式。

如果您使用的是GUI logcat界面,最好为要查看的标签创建过滤器。这些被分为单独的类别。虽然ui改变了一点,但你可以使用这个old answer from me。应该清楚如何使用它(确保按下“显示已保存的过滤器选项卡”按钮,否则你将看不到“添加过滤器”按钮。你可以在右上角找到它日志)。我不知道有任何选项可以让你从整个日志流中过滤掉某些标签。

如果您使用的是命令行,则可以将某些标签静音。例如:

adb logcat AndroidRuntime:S *:V

显示除了标记 AndroidRuntime 之外的所有内容(*:V),除了标记 AndroidRuntime 之外,它将仅限于“silent”loglevel,这意味着它将不会打印任何内容。 / p>

要显示单个标签,您可以使用

adb logcat *:S MyAppTag:V OtherTag:V

同样,除了 MyAppTag OtherTag 之外,所有内容都会被静音。有关详细信息,请参阅Filtering Log Output

答案 3 :(得分:5)

我无法在Android Studio(将与未来版本的android SDK一起提供的IDE)中正确选择解决方案。然而,以下正则表达式解决了我的问题:

^(?!dalvikvm)

答案 4 :(得分:3)

我有一个技巧:

 Log.d(TAG, "MyTag" + message);

正如您所看到的,当我使用“MyTag”键过滤时,它只显示来自我的标签的日志。

答案 5 :(得分:1)

这是一个迟到的回应,但也许有用。 在Eclipse环境中,在LogCat视图中,表格上方有一个搜索框。 注意,空的时候会看到:

  

搜索消息。接受Java正则表达式。前缀为pid:,app:,   tag:或text:限制范围。

这意味着您可以通过写标记:MyTag 甚至正则表达式标记来过滤您的标记:我的。*

答案 6 :(得分:0)

过滤掉不是来自您应用的日志消息的另一种方法是选择:

日志级别:详细

"仅显示选定的应用程序" (来自过滤器选择下拉列表)

然后从logcat窗口的下拉调试列表中选择您的应用程序。

这应该只显示你的应用程序的日志消息和输出。