如何在 Android Studio 中过滤 logcat?

Posted

技术标签:

【中文标题】如何在 Android Studio 中过滤 logcat?【英文标题】:How to filter logcat in Android Studio? 【发布时间】:2013-11-24 18:25:42 【问题描述】:

在我的 logcat 中有太多输出,所以我想使用一些关键字对其进行过滤,基本上只显示包含关键字的输出。有没有办法通过 UI 在 android Studio 中做到这一点?

【问题讨论】:

Filter LogCat to get only the messages from My Application in Android? 的可能重复项 不,我在问如何按关键字过滤消息。 从 android studio 版本 0.4.5 开始,您将收到来自仅运行的应用程序的消息。 Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown 【参考方案1】:

有两种方法可以做到这一点,两者都在 IDE 底部的 Android 选项卡中(显示 logcat 输出的位置)。

首先,您可以简单地在顶部的搜索框中输入一些内容,它应该只过滤包含您输入的文本的消息。

其次,您可以通过单击右上角的下拉菜单进行高级过滤,默认情况下应该显示No Filters,然后选择Edit Filter Configuration并指定要过滤的内容。使用此方法,您还可以保存过滤器,并可以通过在下拉列表中选择它们来重新使用它们。

截图:

【讨论】:

感谢您的回答。我已经尝试过第一个,但它没有过滤掉不相关的输出。回复:第二个选项,可惜我看不到下拉菜单,你用的是什么版本? 我正在使用 v0.3.5...在答案中添加了它的屏幕截图。 我只是在截屏时注意到了这一点,还有另一种过滤方式。在 左侧 侧(选项卡旁边)是一个带有绿色箭头的图标 - 可以打开/关闭它以仅显示列表中选择的进程中的 logcat :) 谢谢,我的版本 (0.3.2) 中没有这些过滤器 没问题!我想它是在 v0.3.3/4 中添加的。每个版本的 Android Studio 都在变得更好 :)【参考方案2】:

我要做的是右键单击我不喜欢的行并选择“像这样折叠行”

【讨论】:

哇太棒了!!希望我早点知道! 这应该是答案。 只有这个解决了我在 Android Studio logcat 上的 genymotion 的洪水,谢谢。 很惊讶我以前从未注意到这一点。很好的发现! 好的:-D(只需双击带有文本的绿色条目:“n 内部调用”)【参考方案3】:

正如@free3dom 所说,您可以选择要从中接收 logcat 的进程。 这是屏幕截图。

【讨论】:

感谢您添加此内容。在这里为大家提供它很好,我只在 cmets 中提到它:) 图形也不错 ;-) 从 android studio 版本 0.4.5 开始,您将从仅运行的应用程序中获取消息。 Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown +1 表示在“仅显示来自选定进程的日志”上按此按钮 我还有一个问题,当我从过滤器配置中应用过滤器时,对于特定的包,logcat 变为空白。【参考方案4】:

我制作了一个视频教程向您展示如何操作= https://youtu.be/xw2qE5ko_9I

为您的日志命名。我叫我的“哇”。

在 Android Studio 中,转到 Android-> Edit Filter Configurations

然后输入您为日志提供的名称。就我而言,它被称为“wawa”。以下是您可以执行的过滤器类型的一些示例。您可以按 System.out、System.err、Logs 或包名称进行过滤:

【讨论】:

是否有正则表达式来否定这一点,以隐藏包含一行的日志? 我不知道。如果你想使用正则表达式,我认为最好的方法是 adb 进入 Android 操作系统并在 Bash 终端上使用 Grep。 ^(?!chromium)(?!WebViewFactory)(?!zygote) .... 添加您想要隐藏的标签,例如 (?!TAG_NAME)。如果您想使用正则表达式作为标签,例如。您想隐藏所有以“asd”开头的标签,然后将 (?!(^asd)) 添加到此标签“列表”中。【参考方案5】:

首先在您的代码中声明您的 TAG 名称,例如

private static final String TAG = "MainTagName";

然后在要输出的地方添加日志语句

Log.d(TAG, "Activity created");

根据第二篇文章中的 free3dom,在 logcat 选项卡上单击过滤器下拉菜单,然后单击编辑过滤器配置。

在这个例子中,我们使用 Log Tag (regex) 选项来显示使用管道 | 的三个匹配标签名称中的任何一个的日志消息。分隔符(不带空格):

MainTagName|SomeTagName|SomeOtherTagName

【讨论】:

我在使用 | 时没有得到任何 logcat 输出将两个标签分开(Android Studio 1.2) @SomeoneSomewhere 确保您的 TAG 名称与 Log 语句中的第一个参数匹配。确保标签名称和管道之间没有空格,例如标签1|标签2。确保您实际上是通过调试代码来点击 tag 命令。在 logcat 窗口的 Log level 下拉菜单中检查您的日志级别是否设置为 Debug 或 Verbose。 我尝试了各种组合。我的失败是因为我的过滤器带有空格和 |像“标签1 |标签2”。找到了这个答案并删除了空格,它工作得很好。谢谢!【参考方案6】:

看到这个https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

只需创建 LogCat 过滤器,将字符串下方的插入插入“LogTag”,然后忽略系统行

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))

【讨论】:

【参考方案7】:

我在 Logcat 中打开过滤器时遇到了问题。要在 Android Studio 3.2 中查看过滤器,您必须再次打开和关闭“浮动模式”以使过滤器重新出现。

【讨论】:

【参考方案8】:

对我有用的另一种方法是在过滤器菜单中选择Show only selected application 选项:

【讨论】:

知道“Firebase”选项何时出现吗?我今天第一次看到它(花了很长时间想知道为什么我的应用不再记录)。 我什至不知道它在那里。 我也没有,但我选择了它(不知道),这浪费了很多时间。无论如何谢谢【参考方案9】:

我不知道其他答案中的图像是旧的还是我遗漏了一些东西,但这是更新的图像。

点击底部的Android Monitor标签,确保选中logcat标签。然后输入您想要过滤输出的任何内容。我用我的标签名称TAG过滤了我的。

【讨论】:

【参考方案10】:

只是添加我自己的错误:

确保当您使用模拟器和真实设备时,在 logcat 选项卡上方左侧的下拉菜单中切换到您正在调试的设备。

【讨论】:

以上是关于如何在 Android Studio 中过滤 logcat?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 1.0 中找到过滤器 Logcat 配置?

Android studio Logcat 过滤栏消失

android studio的logcat怎么过滤出来调试信息

Android Studio Logcat 过滤器精确标签

过滤文本,如 Android Studio/Eclipse logcat

如何在Android Studio中创建入门芯片填充?