Как отфильтровать тэг в Eclipse LogCat Viewer - PullRequest
72 голосов
/ 25 октября 2011

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

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

Ответы [ 7 ]

180 голосов
/ 15 ноября 2011

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

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

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

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

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

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

9 голосов
/ 06 ноября 2013

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

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

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

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

8 голосов
/ 25 октября 2011

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

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

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

adb logcat AndroidRuntime:S *:V

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

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

adb logcat *:S MyAppTag:V OtherTag:V

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

5 голосов
/ 08 апреля 2014

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

^(?!dalvikvm)
3 голосов
/ 25 октября 2011

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

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

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

1 голос
/ 15 апреля 2012

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

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

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

0 голосов
/ 07 июня 2015

Другой способ отфильтровать сообщения журнала, которые не исходят из ВАШЕГО приложения, - это выбрать:

Уровень журнала: подробный

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

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

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

...