Фильтровать вывод в logcat по тэгу


151

Я пытаюсь отфильтровать вывод logcat с реального устройства (не эмулятора) по имени тега, но я получаю все сообщения, которые являются спамом. Я просто хочу читать сообщения из браузера, который должен быть что-то вроде "browser: " или "webkit: ", но это не работает ... Вот что я получаю:

фактический объем производства

Ответы:


294

использовать это:

adb logcat -s "TAGNAME"

7
Спасибо! Вышесказанное эквивалентно adb logcat *: s 'tagname'
munch

3
Как я могу отфильтровать <тэг>?
Арунабх Дас

Я считаю, что единственный способ отфильтровать это по уровням. Например, если какое-то приложение спамует Debug, установите уровень logcat только для отображения информации и более высоких уровней: logcat *: I
Someone Somewhere

1
Можно ли использовать выше с -f имя файла? Скажем, мой сценарий - отфильтровать журналы по TagName и создать дамп в текстовый файл.
Зеленый гоблин

9
Das - "adb logcat TAGNAME: s" will 's'ilence с шумным тегом.
Дон Парк

56

В случае, если кто-то наткнется на это, как я, вы можете отфильтровать несколько тегов, добавив между ними запятую, например, так:

adb logcat -s "browser","webkit"

Объясните, где я должен поставить этот код. Я новая пчела. Пожалуйста, объясните
Зар Э Ахмер

1
@Nepter Введите это в терминале.
async

Если вы используете Cygwin на Windows, вы можете использовать grep ... и да, это работает.
Сгупта

12

Другой вариант - установка уровней журнала для определенных тегов:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Датчики: E

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


9

Не зависит от оболочки ADB, просто обработайте его (adb logcat) обычным выводом Linux, а затем передайте его:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
Это плохой выбор, потому что отправляется много ненужного трафика, и фильтр, очевидно, не будет работать. Если несвязанный процесс регистрирует сообщение, в котором есть какая-то строка, появится.
Джон Смит

and the filter obviously won't work, ты пробовала? Я вставил свой ответ в соответствии с результатом.
Сивей Шен 申思维

1
Вопрос был для windows, где grep недоступен
sroskelley

1
Если вы используете Cygwin на Windows, вы можете использовать grep ... и да, это работает.
Сгупта

6

Вот как я создаю тег:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Вы можете использовать getCannonicalName

Здесь у меня есть следующие фильтры TAG:

  • любой (*) вид - VERBOSE
  • любая (*) активность - VERBOSE
  • любой тег, начинающийся с Xyz (*) - ОШИБКА
  • System.out - SILENT (так как я использую Log в своем собственном коде)

Вот что я печатаю в терминале:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.