Как отфильтровать logcat в Android Studio?

96

В моем logcat слишком много вывода, поэтому я хотел бы отфильтровать его с помощью некоторых ключевых слов, в основном отображая только вывод, содержащий ключевое слово (а). Есть ли способ сделать это в Android Studio через пользовательский интерфейс?

Алессандро Роаро
источник
нет, я спрашиваю, как фильтровать сообщения по ключевым словам.
Алессандро Роаро
начиная с версии 0.4.5 студии Android вы будете получать сообщения только из запущенного приложения. 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

Ответы:

107

Есть два способа сделать это, оба находятся на вкладке Android в нижней части IDE (где отображается вывод logcat).

Во-первых, вы можете просто ввести что-то в поле поиска вверху, и оно должно фильтровать только сообщения, содержащие вводимый вами текст.

Во-вторых, вы можете выполнить расширенную фильтрацию, щелкнув раскрывающийся список в правом верхнем углу, который по умолчанию должен отображать « Без фильтров », и выбрать Edit Filter Configurationи указать, что фильтровать. Используя этот метод, вы также сохраняете фильтры и можете использовать их повторно, выбирая их в раскрывающемся списке.

Скриншот:
Поиск и фильтрация в Logcat

free3dom
источник
1
Спасибо за ответ. Я уже пробовал первый, но он не отфильтровывает нерелевантный вывод. Re: второй вариант, к сожалению, я не вижу раскрывающегося меню, какую версию вы используете?
Алессандро Роаро
1
Я использую v0.3.5 ... добавил в ответ скриншот.
free3dom
1
Я только что заметил это при создании скриншота, ЕЩЕ ЕСТЬ другой способ фильтрации. С левой стороны (справа от вкладок) находится значок с зелеными стрелками - его можно включить / выключить, чтобы отображать только logcat из процесса, выбранного в списке :)
free3dom
Спасибо, у меня не было этих фильтров в моей версии (0.3.2)
Алессандро Роаро
Нет проблем! Полагаю, это было добавлено тогда в v0.3.3 / 4. Android Studio становится лучше с каждой версией :)
free3dom
82

Что я делаю, так это щелкаю правой кнопкой мыши по строке, которая мне не нравится, и выбираю «Сложить такие строки».введите описание изображения здесь

Джеймс Хэкетт
источник
9
Вау, здорово !! Хотел бы я знать это раньше!
miva2
7
Это должен быть ответ.
прославился 02
2
Только это решит мой флуд с помощью genymotion на Android Studio logcat, спасибо.
Флорида,
3
Пораженный, я никогда этого раньше не замечал. Хорошая находка!
dm78
1
хорошо, понял :-D (просто дважды щелкните зеленую запись с текстом: «n внутренних звонков»)
Айдын К.
53

Как сказал @ free3dom, вы можете выбрать процесс, из которого вы хотите получать logcats. Вот скриншот.

Скриншот

dmSherazi
источник
2
Спасибо, что добавили это. Это хорошо для всех, и я упомянул об этом только в комментариях :)
free3dom
39
Хорошая графика тоже ;-)
Gerard
1
начиная с версии 0.4.5 студии Android вы будете получать сообщения только от запущенного приложения. 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
1
+1 для того, чтобы нажать эту кнопку на «Показывать журналы только выбранного процесса»
lujop
У меня есть еще одна проблема: когда я применяю фильтр из конфигурации фильтра для определенного пакета, logcat становится пустым.
Бхупеш
18

Я СДЕЛАЛ ВИДЕОУЧИТЕЛЬ, ЧТОБЫ ПОКАЗАТЬ ВАМ КАК = https://youtu.be/xw2qE5ko_9I

Дайте вашему журналу имя. Я назвал свою "вава".

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

В Android Studio перейдите в Android-> Изменить конфигурации фильтров.

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

Затем введите имя, которое вы дали журналам. В моем случае это называется «вава». Вот несколько примеров типов фильтров, которые вы можете использовать. Вы можете фильтровать по System.out, System.err, журналам или именам пакетов:

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

Ген
источник
2
Есть ли регулярное выражение, которое отрицает это, чтобы скрыть журналы, содержащие строку?
Hugo M. Zuleta
Не то, что я знаю о. Если вы хотите использовать регулярное выражение, я думаю, что лучший способ - это добавить adb в ОС Android и использовать Grep в терминале Bash.
Джин
^ (?! chromium) (?! WebViewFactory) (?! zygote) .... добавьте такие теги, которые вы хотите скрыть, например (?! TAG_NAME). Если вы хотите использовать регулярное выражение для тега, например. вы хотите скрыть все теги, начинающиеся с «asd», затем вы добавляете (?! (^ asd)) в этот «список» тегов.
Drusantia 06
11

Сначала объявите свои имена тегов в своем коде, например

private static final String TAG = "MainTagName";

Затем добавьте операторы журнала, где вы хотите что-то вывести

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

Согласно free3dom во втором сообщении, на вкладке logcat щелкните раскрывающееся меню «Фильтры», а затем «Изменить конфигурацию фильтра».

В этом примере мы используем опцию Log Tag (regex) для отображения сообщений журнала для любого из трех совпадающих имен тегов с помощью конвейера | разделитель (без пробелов):

MainTagName|SomeTagName|SomeOtherTagName
HostMyBus
источник
2
Я не получаю вывода logcat при использовании | разделить два тега (Android Studio 1.2)
Someone Somewhere
2
@SomeoneSomewhere Убедитесь, что имя вашего ТЕГА соответствует первому параметру в операторе журнала. Убедитесь, что между именами тегов и вертикальной чертой нет пробелов, например, tag1 | tag2. Убедитесь, что вы действительно нажимаете команду тега, отлаживая свой код. Убедитесь, что для вашего уровня журнала установлено значение Отладка или Подробный в раскрывающемся списке Уровень журнала в окне logcat.
HostMyBus
2
Я пробовал всевозможные комбинации. Мой не удался, потому что у меня был фильтр с пробелами и | например "Tag1 | Tag2". Нашел этот ответ и удалил пробелы, и он отлично работает. Спасибо!
raddevus
5

У меня возникли проблемы с включением фильтров в Logcat. Чтобы увидеть фильтры в Android Studio 3.2, вам нужно снова включить и выключить «Плавающий режим», чтобы фильтры снова появились.

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

живи любя
источник
3

Одна из альтернатив, которая мне подходит, - выбрать Show only selected applicationопцию в меню фильтра:

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

Оджонугва Джуд Очалифу
источник
Есть идеи, когда появилась опция "Firebase"? Я увидел это впервые сегодня (потратив целую вечность на размышления, почему мое приложение больше не регистрируется).
Ричард Ле
Я понятия не имел, что это было даже там.
Ojonugwa Jude Ochalifu
1
Я тоже, но я выбрал его (не зная), и это потратило много времени. В любом случае
Ричард Ле
2

Я не знаю, старые ли изображения в другом ответе или я что-то упустил, но вот обновленное изображение.

Щелкните вкладку Android Monitor внизу и убедитесь, что выбрана вкладка logcat . Затем введите все, что вы хотите отфильтровать . Я отфильтровал свой с моим именем тега TAG.

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

Suragch
источник
2

Просто добавлю свою ошибку:

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

Азимов
источник
1

см. https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

просто создайте фильтр LogCat, вставив под String в «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))
Йозеф Ванкура
источник