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

Jle*_*leu 72 eclipse android logcat

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

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

Rob*_*ill 180

是.创建一个"按日志标记"字段的过滤器

^(?!.*(MYTAG)).*$
Run Code Online (Sandbox Code Playgroud)

MYTAG你不想看到的标签在哪里.我不是一个正则表达式专家(一个"regexpert"?;-))因此可能有一种更简单的方法来做这种否定,但我只是尝试了它并且它有效.

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

tag:^(?!.*(DeskClock|dalvik|wpa)).*$
Run Code Online (Sandbox Code Playgroud)

这将显示标签"DeskClock","dalvik"和"wpa" 之外的所有消息.


Vin*_*hwa 9

这似乎与问题没有直接关系,但这里有一个正则表达式,当你把它放在你的标签过滤器中时,过滤掉大部分系统生成的日志,如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))
Run Code Online (Sandbox Code Playgroud)

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

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


小智 8

取决于您查看logcat的方式.

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

如果使用命令行,则可以将某些标记静音.例:

adb logcat AndroidRuntime:S *:V
Run Code Online (Sandbox Code Playgroud)

显示一切(*:V)直到详细日志级别,除了标签AndroidRuntime,它将被限制为"沉默"loglevel,这意味着它将不打印任何内容.

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

adb logcat *:S MyAppTag:V OtherTag:V
Run Code Online (Sandbox Code Playgroud)

同样,除了MyAppTagOtherTag之外,一切都会被静音.有关详细信息,请参阅筛选日志输出.


Mai*_*son 5

我无法在Android Studio(未来版本的android SDK附带的IDE)中选择正确的解决方案.但是以下正则表达式解决了我的问题:

^(?!dalvikvm)
Run Code Online (Sandbox Code Playgroud)