Как читать логи в Logcat
Что такое Logcat
Logcat - инструмент для сбора логов с устройства / приложения. Логи можно разбить на категории по тегам, уровням и процессам. Также в интерфейсе Android Studio можно фильтровать логи, искать по вхождению или с помощью регулярных выражений. Подробности про Logcat можно прочитать в официальной документации.
Как найти Logcat
- В UI-интерфейсе в Android Studio:
View > Tool Windows > Logcat
илиoption+6
(Mac). - Через терминал:
Terminal > adb shell logcat
. В этой доке рассказываем про UI-версию. Про CLI-версию можно прочитать тут.
Уровни логов
Каждый лог имеет дату, время, процесс, ID потока, название пакета, приоритет и сообщение. Для удобства уровни логов выделяют цветом и лейблом. В таблице типы представлены от низшего к высшему типу.
Фильтры
Фильтрация логов по уровням
Для фильтрации логов по уровням необходимо в инпут фильтрации ввести пару level:<type>
, где type - уровень логов. Нужно учитывать что включая лог низшего уровня увидим сообщения типа высшего уровня. Т.е. включить логи W, то в логах увидим и E, A. Если включить V, то будут отображаться логи всех уровней.
Фильтрация логов по тегам
Тег - это параметр передаваемый в функцию Log.<log_level>
, с помощью которого можно фильтровать события только с таким тегом. Чтобы искать по тегу, нужно в инпут фильтрации ввести tag:<entry_type>
. Например, чтобы увидеть события андроида можно ввести tag:android
При вводе tag
можно увидеть предложенные варианты поиска, в том числе можно исключать теги конструкцией -tag:<entry_type>
Фильтрация логов по пакетам
Фильтрация по пакету (приложению) аналогична фильтрации по тегам. Нужно задать конструкцию package:<package_name>
. Например, отфильтровать запрос по пакетуpackage:[email protected]
Комбинация фильтров и регулярные выражения
В инпуте фильтрации можно использовать регулярные выражения. Например, вот так package:android | -package:system_process
можно отфильтровать события с пакетом android и отбросить события system_process
.
Некоторые дополнительные возможности logcat в Android Studio
Экспорт и импорт логов
Для того чтобы, например, поделиться логами, можно их сохранить нажав на пиктограмму на скрине
Чтобы прочитать экспортированный лог нужно кликнуть на пиктограмму:
Раздельный просмотр логов
Удобно разделять окна логов, например, в одном смотрим какие логи приходят с устройства, а на другом какие логи были импортированы. Для этого жмем на пиктограмму и выбираем способ разделения, а далее в выпадающем списке источник логов:
Перенос строк для удобства чтения
Для удобства чтения, чтобы не скроллить длинные строки, включаем Soft-wrap:
Работа с логами через CLI logcat
Подробнее про возможности CLI logcat читайте в официальной документации. Ниже представлены некоторые из них:
adb logcat
- вывод логов в реальном времени в терминалadb logcat >> <path/file.txt>
- сохранение логов в файл, где <path/file.txt> - путь и название файла с логамиadb logcat '*:<level>'
- вывод логов определенного уровня, где - V — Verbose, D — Debug, I — Info, W — Warn, E — Error, F — Fataladb logcat -c
- очистка логов