Як відфільтрувати logcat в Android Studio?


96

У моєму logcat занадто багато вихідних даних, тому я хотів би відфільтрувати його за допомогою деяких ключових слів, в основному відображаючи лише вихідні дані, що містять ключові слова. Чи є спосіб зробити це в Android Studio за допомогою інтерфейсу користувача?



ні, я запитую, як фільтрувати повідомлення за ключовим словом.
Алессандро Роаро,

оскільки від android studio версії 0.4.5 ви отримуватимете повідомлення лише з запущеної програми. 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


1
Дякую за відповідь. Я вже спробував перший, але він не відфільтровує невідповідний вихід. Re: другий варіант, на жаль, я не бачу випадаючого меню, яку версію ви використовуєте?
Алессандро Роаро

1
Я використовую v0.3.5 ... додав скріншот його у відповідь.
free3dom

1
Я щойно помітив це, роблячи скріншот, Є ще один спосіб фільтрації. На лівій стороні (праворуч , поруч з вкладками) являє собою значок із зеленими стрілками - це може бути переключена вкл / викл , щоб відобразити тільки LogCat з процесу , обраного в списку :)
free3dom

Дякую, у моїй версії (0.3.2) цих фільтрів не було
Алессандро Роаро,

Нема проблем! Я припускаю, що тоді це було додано у v0.3.3 / 4. Android Studio покращується з кожною версією :)
free3dom

81

Що я роблю, це клацнути правою кнопкою миші на рядку, який мені не подобається, і вибрати "Скласти такі рядки"введіть тут опис зображення


9
Ого, чудово!! Як би я знав це раніше!
miva2

7
Це має бути відповіддю.
раділи

2
Тільки це вирішило мою повінь шляхом genymotion на Android Studio logcat, дякую.
Флорида,

3
Здивований, я ніколи раніше цього не помічав. Гарна знахідка!
dm78,

1
добре зрозуміло :-D (просто двічі клацніть на зелений запис із текстом: "n внутрішні дзвінки")
Айдін К.

53

Як сказав @ free3dom, ви можете вибрати процес, з якого ви хочете отримувати логіки. Ось скріншот.

Екран постріл


2
Дякуємо, що додали це. Це добре мати його тут для всіх, і я згадував це лише у коментарях :)
free3dom

39
Приємна графіка теж ;-)
Джерард

1
як з android studio ver 0.4.5 u, ви отримаєте повідомлення лише з програми, яка працює. 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 for thre натисніть на це "Показати лише журнали вибраного процесу"
lujop

У мене є ще одна проблема, коли я застосовую фільтр із конфігурації фільтру для певного пакету, logcat стає порожнім.
Бупеш

17

Я ЗРОБИВ ВІДЕОПОДРОБНИК, ЩОБ ВАМ ПОКАЗАТИ = https://youtu.be/xw2qE5ko_9I

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

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

В Android Studio перейдіть до Android-> Редагувати конфігурації фільтра

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

Потім введіть ім’я, яке ви дали журналам. У моєму випадку це називається "вава". Ось кілька прикладів типів фільтрів, які ви можете зробити. Ви можете відфільтрувати за System.out, System.err, Журнали або імена пакетів:

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


2
Чи існує регулярний вираз, щоб це заперечити, щоб приховати журнали, що містять рядок?
Hugo M. Zuleta

Не те, що я знаю. Якщо ви хочете скористатись регулярним виразом, я думаю, що найкращий спосіб - ввійти в ОС Android і використовувати Grep на терміналі Bash.
Джин

^ (?! chromium) (?! WebViewFactory) (?! zygote) .... додайте подібні теги, які хочете сховати (?! TAG_NAME). Якщо ви хочете використовувати регулярний вираз для тегу, наприклад. ви хочете приховати всі теги починається з "asd", потім ви додаєте (?! (^ asd)) до цього "списку" тегів.
Друзантія

11

Спочатку оголосіть свої імена TAG у своєму коді, наприклад

private static final String TAG = "MainTagName";

Потім додайте заяви журналу, де ви хочете щось вивести

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

Відповідно до free3dom у другому дописі, на вкладці logcat натисніть спадне меню Фільтри, а потім Редагувати конфігурацію фільтра.

У цьому прикладі ми використовуємо опцію Log Tag (регулярний вираз) для відображення повідомлень журналу для будь-якого з трьох відповідних імен тегів за допомогою каналу | роздільник (без пробілів):

MainTagName|SomeTagName|SomeOtherTagName

2
Я не отримую жодного результату logcat при використанні | розділити два теги (Android Studio 1.2)
Хтось десь

2
@SomeoneSomewhere Переконайтесь, що ім'я TAG відповідає першому параметру в операторі журналу. Переконайтеся, що між іменами тегів та трубою немає пробілів, наприклад, tag1 | tag2. Будьте впевнені, що ви насправді потрапляєте до команди тегів, налагоджуючи код. Перевірте, чи рівень журналу встановлено на налагодження або багатослівний у спадному вікні журналу випадає рівень журналу.
HostMyBus

2
Я пробував всілякі комбінації. Мій не вдався, оскільки у мене був фільтр із пробілами та | типу "Tag1 | Tag2". Знайшов цю відповідь і прибрав пробіли, і вона чудово працює. Дякую!
raddevus

5

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

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


3

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

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


Будь-яка ідея, коли з’явився варіант "Firebase"? Я побачив це вперше сьогодні (провівши вік, дивуючись, чому мій додаток більше не реєструється).
Річард Ле Мес'єр'є

Я не уявляв, що це навіть там.
Ojonugwa Jude Ochalifu

1
Я також не зробив цього, але я вибрав його (не знаючи), і це витратило багато часу. Thx в будь-якому випадку
Річард Ле Мессур'є

2

Я не знаю, чи є зображення в іншій відповіді старими, чи мені чогось не вистачало, але ось оновлене зображення.

Клацніть вкладку Android Monitor внизу та переконайтеся, що вибрано вкладку logcat . Потім введіть все, що потрібно, щоб відфільтрувати результати. Я відфільтрував свій за допомогою мого тегу TAG.

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


2

Просто додати власну помилку:

переконайтеся, що, коли ви використовуєте Емулятор та реальний пристрій, перейдіть на пристрій, на якому ви налагоджуєте, у спадному меню ліворуч над вкладкою logcat.


1

дивіться це https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

просто створіть LogCat фільтр вставку під рядком до "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))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.