Как отфильтровать tagname в Eclipse LogCat viewer


У меня есть приложение для Android, которое "спамит" LogCat, и я хотел бы удалить его записи logcat, чтобы иметь более читаемый вывод.

можно ли иметь фильтр, который удаляет записи LogCat для определенного имени тега? Или шаблон поиска, который делает трюк?

7 72

7 ответов:

Да. Создайте фильтр, в котором поле "по тегу журнала" будет

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

здесь MYTAG - это тег, который вы не хотите видеть. Я не эксперт по регулярным выражениям ("regexpert"? ;- )) так что может быть более простой способ сделать это отрицание, но я просто попробовал, и это работает.

вы можете поиграть с фильтром в поле чуть выше области сообщения журнала Cat, введя строки фильтра там, например:

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

который покажет все сообщения кроме теги "DeskClock", "dalvik"и " wpa".

Это может показаться не имеющим прямого отношения к вопросу, но вот регулярное выражение, которое отфильтровывает большинство системных журналов, когда вы помещаете это в свой тег 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))

Я продолжаю обновлять этот список тегов, поскольку я сталкиваюсь с их тестированием на разных устройствах. Этот перечень не является исчерпывающим и вы можете внести свой вклад в этот ответ. Я уверен, что это сэкономит час для многих.

Если есть другие журналы, вам нужно отфильтрованные, добавьте их в это регулярное выражение с помощью символа|/'.

зависит от того, каким образом вы просматриваете свой logcat.

Если вы используете интерфейс GUI logcat, лучше всего создать фильтр для тегов, которые вы хотите увидеть. Они попадают в отдельную категорию. Хотя интерфейс немного изменился, вы можете использовать это старый ответ от меня. Должно быть понятно, как это использовать (убедитесь, что кнопка" Показать сохраненные фильтры "нажата, иначе вы не увидите кнопку" Добавить фильтр". Вы можете найти это в правом верхнем углу журнал). Я не знаю ни одного варианта, который позволяет отфильтровать определенные теги из всего потока журналов.

Если вы используете командную строку, вы можете отключить определенные теги. Пример:

adb logcat AndroidRuntime:S *:V

показывает все (*:V) до уровня подробного журнала, за исключением тега AndroidRuntime, который будет ограничен уровнем журнала "silence", что означает, что он ничего не будет печатать.

для отображения одного тега вы можете использовать

adb logcat *:S MyAppTag:V OtherTag:V

то же самое кстати, все замолкает кроме MyAppTag и OtherTag. Смотрите Выход Журнала Фильтрации для более подробной информации.

Я не мог получить выбранное решение для правильной работы в Android Studio (IDE, которая будет поставляться с будущими версиями Android SDK). Однако следующее регулярное выражение решило мою проблему:

^(?!dalvikvm)

У меня есть трюк:

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

Как вы можете видеть, когда я фильтрую с помощью ключа "MyTag", он показывает только журнал из моего тега.

это поздний ответ, но, возможно, полезно. В среде Eclipse, в представлении LogCat, над таблицей есть поле поиска. Обратите внимание, когда пустой он читает:

найти сообщения. Принимает регулярные выражения Java. Префикс с pid:, app:, тег: или текст: для ограничения области действия.

Это означает, что вы можете отфильтровать свой тег, написав там тег: MyTag или даже регулярное выражение теги:мой.*

другой способ отфильтровать сообщения журнала, которые не исходят из вашего приложения, - это выбрать:

Уровень Журнала: Подробный

" показывать только выбранное приложение "(из выпадающего списка выбор фильтра)

затем выберите приложение из выпадающего списка отладочные в окне logcat.

Это должно показывать только сообщения журнала и выход из приложения.