如何在Android Studio中过滤logcat?


96

在我的logcat中,有太多输出,因此我想使用一些关键字对其进行过滤,基本上只显示包含关键字的输出。有没有一种方法可以通过UI在Android Studio中执行此操作?



不,我在问如何按关键字过滤邮件。
亚历山德罗·罗阿罗

从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
dmSherazi 2014年

Answers:


107

有两种方法,两种方法都在IDE底部的Android选项卡中(显示logcat输出)。

首先,您只需在顶部的搜索框中输入内容,它就只过滤包含您输入文字的邮件。

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

屏幕截图:
搜索和筛选Logcat


1
谢谢您的回答。我已经尝试过第一个,但是它不会过滤掉无关的输出。回复:不幸的是,第二个选项我看不到下拉菜单,您使用的是哪个版本?
亚历山德罗·罗阿罗

1
我正在使用v0.3.5 ...已将其屏幕截图添加到答案中。
Free3dom 2013年

1
我刚刚在截屏时注意到了这一点,还有另一种过滤方法。在侧(右旁标签)与绿色箭头的图标-它可以被打开/关闭,以只从logcat中在列表中:)选择的处理显示
free3dom

谢谢你,我没有这些过滤器在我的版本(0.3.2)
亚历山德罗Roaro

没问题!我想它是在v0.3.3 / 4中添加的。Android Studio的每个版本都在改进:)
Free3dom 2013年

81

我要做的是右键单击我不喜欢的行,然后选择“像这样折叠行”在此处输入图片说明


9
哇!希望我早点知道!
miva2 '16

7
这应该是答案。
高兴

2
只有这样才能通过genymotion解决Android Studio logcat上的问题,谢谢。
佛罗里达州

3
太惊讶了,我之前从未注意到这一点。好发现!
dm78

1
好的:-D(只需双击带有文本的绿色条目:“ n个内部呼叫”)
Aydin K.

53

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

屏幕截图


2
感谢您添加。所有人都在这里拥有它真是太好了,我只在评论中提到了它:)
free3dom 2013年

39
也是不错的图形;-)
Gerard

1
从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
dmSherazi 2014年

1
+1使其按“仅显示所选过程中的日志”
按此按钮

我还有另一个问题,当我从过滤器配置中应用过滤器时,对于特定的软件包,logcat变为空白。
布达佩斯2015年

17

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

给您的日志起一个名字。我称我为“ wawa”。

在此处输入图片说明

在Android Studio中,转到Android->编辑过滤器配置

在此处输入图片说明

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

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明


2
是否有正则表达式可以对此进行否定,以便隐藏包含行的日志?
Hugo M. Zuleta

从来没听说过。如果您想使用正则表达式,我认为最好的方法是adb进入Android操作系统并在Bash Terminal上使用Grep。
基因

^(?! chromium)(?! WebViewFactory)(?! zygote)... 如果您想使用正则表达式作为标签,例如 您要隐藏所有以“ asd”开头的标签,然后将(?!(^ asd))添加到标签的“列表”中。
Drusantia

11

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

private static final String TAG = "MainTagName";

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

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

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

在此示例中,我们使用“按日志标签(regex)”选项使用管道|显示三个匹配标签名称中的任何一个的日志消息。分隔符(无空格):

MainTagName|SomeTagName|SomeOtherTagName

2
使用|时,我没有得到任何logcat输出。分隔两个标签(Android Studio 1.2)
某处某人2015年

2
@SomeoneSomewhere确保您的TAG名称与Log语句中的第一个参数匹配。确保标签名称和管道之间没有空格,例如tag1 | tag2。确保实际上是通过调试代码来命中tag命令。在logcat窗口的“日志级别”下拉列表中,检查您的日志级别设置为“调试”或“详细”。
HostMyBus 2015年

2
我尝试了各种组合。我的失败了,因为我的过滤器带有空格,并且| 例如“ Tag1 | Tag2”。找到了这个答案,并删除了空格,并且效果很好。谢谢!
raddevus

5

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

在此处输入图片说明


3

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

在此处输入图片说明


知道“ Firebase”选项何时到达吗?我今天第一次看到它(花了一段时间想知道为什么我的应用程序不再记录日志)。
理查德·勒·马苏里尔

我什至不知道它在那里。
Ojonugwa Jude Ochalifu

1
我也没有,但是我选择了它(不知道),这浪费了很多时间。无论如何
理查德·勒·马修里尔

2

我不知道另一个答案中的图像是否旧,或者我是否缺少某些东西,但这是更新的图像。

单击底部的“ Android监视器”选项卡,并确保已选择“ logcat”选项卡。然后输入您想要过滤输出的任何内容。我用标签名称过滤了我的标签TAG

在此处输入图片说明


2

只是添加我自己的错误:

确保在使用仿真器和真实设备时,要切换到要调试的设备,请在logcat选项卡上方左侧的下拉列表中进行调试。


1

看到这个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))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.