Фільтр виводу в logcat за іменем тегів


151

Я намагаюся відфільтрувати вихід logcat з реального пристрою (а не емулятора) за назвою тегів, але я отримую всі повідомлення, що є досить спамом. Я просто хочу прочитати повідомлення з браузера, які повинні бути чимось на кшталт "browser: " або "webkit: ", але це не працює ... Ось що я отримую:

фактичний вихід

Відповіді:


294

використовуй це:

adb logcat -s "TAGNAME"

7
Дякую! Вище еквівалентний ADB LogCat *: s 'тег'
Munch

3
Як я можу відфільтрувати <Ім'я>?
Арунаб Дас

Я вважаю, що єдиний спосіб відфільтрувати - це за рівнями. Наприклад, якщо якась програма спамує налагодження, тоді встановіть рівень логістики, щоб він відображав лише інформацію та вищі рівні: logcat *: Я
хтось десь

1
Чи можна використовувати вище з назвою файлу -f? Скажімо, мій сценарій - це фільтрувати журнали за TagName та скидати текстовий файл.
Зелений гоблін

9
Das - "adb logcat TAGNAME: s" буде безшумним тегом.
Дон Парк

56

Якщо хтось натрапив на це, як я, ви можете фільтрувати декілька тегів, додаючи коску посередині, наприклад:

adb logcat -s "browser","webkit"

Поясніть, де я повинен поставити цей код. Я нова бджола. Поясніть, будь ласка,
Zar E Ahmer

1
@Nepster Введіть цей термінал.
async

Якщо ви використовуєте cygwin на windows, ви можете використовувати grep ... і так, це працює.
sgupta

12

Інший варіант - встановлення рівнів журналу для конкретних тегів:

adb logcat SensorService: S PowerManagerService: S NfcService: S потужність: I Датчики: E

Якщо ви просто хочете встановити рівні журналів для деяких тегів, ви можете це робити на основі тегів за тегами.


9

Не залежайте від оболонки ADB, просто обробіть її (log adat) звичайним Linux-виводом, а потім перетасуйте його:

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

5
Це поганий вибір, оскільки надсилається багато зайвого трафіку, і фільтр, очевидно, не спрацює. Якщо повідомлення про непов'язаний процес записує журнал, який, можливо, має в ньому деяку рядок
Джон Сміт

and the filter obviously won't work, ти намагався? Я маю і вставлю свою відповідь відповідно до результату.
Siwei Shen 申思维

1
Питання
стосувалося

1
Якщо ви використовуєте cygwin на windows, ви можете використовувати grep ... і так, це працює.
sgupta

6

Ось як я створюю тег:

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

Ви можете використовувати getCannonicalName

Тут у мене є такі фільтри TAG:

  • будь-який (*) Вид - ВЕРБОЗА
  • будь-яка (*) активність - ВЕРБОЗА
  • будь-який тег, починаючи з Xyz (*) - ПОМИЛКА
  • System.out - SILENT (оскільки я використовую Вхід у власному коді)

Ось, що я набираю в терміналі:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.