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

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

是否有可能有一个filter,删除特定标签名称的LogCat条目? 或者一个search模式,这个技巧呢?

是。 在“By log tag”字段中创build一个filter

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

MYTAG是你不想看到的标签。 我不是一个正则expression式专家(“regexpert”?–)),所以可能有一个更简单的方法来做这个否定,但我只是试过,它的工作原理。

您可以在Log Cat消息区域上方的字段中使用filter,方法是在其中inputfilterstring,如下所示:

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

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

这似乎与问题没有直接的关系,但是这里是一个正则expression式,当你把它放在你的标记filter中时,会过滤掉大部分系统生成的日志。

 ^(?!(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)) 

我不断更新这个标签列表,当我遇到他们在不同的设备上testing。 清单并不详尽,你可以自由地为这个答案作出贡献。 我相信这会为很多人节省一个小时。

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

取决于你查看你的logcat的方式。

如果您正在使用GUI logcat界面,最好为要查看的标签创build一个筛选器。 这些被分成了一个独立的类别。 虽然你改变了一点,你可以使用这个旧的答案从我 。 应该清楚如何使用它(确保按“显示保存的filter选项卡”button,否则你将看不到“添加filter”button,你可以在日志的右上angularfind) 。 我不知道有任何选项可以让你从整个日志stream中过滤掉某些标签。

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

 adb logcat AndroidRuntime:S *:V 

显示除了标签AndroidRuntime之外的所有( *:V )(详细日志级别),它将被限制为“沉默”日志级别,这意味着它不会打印任何内容。

显示可以使用的单个标签

 adb logcat *:S MyAppTag:V OtherTag:V 

同样,除了MyAppTagOtherTag之外,所有的东西都变得沉默了。 有关更多详细信息,请参阅过滤日志输出

我无法使select的解决scheme在Android Studio(未来版本的Android SDK附带的IDE)中正常工作。 然而,下面的正则expression式解决了我的问题:

 ^(?!dalvikvm) 

我有一个窍门:

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

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

这是一个迟到的回应,但也许有用。 在Eclipse环境中,在LogCat视图中,表格上方有一个search框。 请注意,当它清空它读取:

search消息。 接受Java正则expression式。 以pid :, app :, tag:或text:作为前缀:限制范围。

这意味着你可以通过在那里写标签来过滤你的标签:MyTag甚至是正则expression式标签:My。*

另一种滤除不是来源于您的应用程序的日志消息的方法是select:

日志级别:详细

“仅显示选定的应用程序”(从filterselect下拉列表中)

然后从logcat窗口的下拉可调列表中select您的应用程序。

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