android studio
March 29

Как читать логи в Logcat

Что такое Logcat

Logcat - инструмент для сбора логов с устройства / приложения. Логи можно разбить на категории по тегам, уровням и процессам. Также в интерфейсе Android Studio можно фильтровать логи, искать по вхождению или с помощью регулярных выражений. Подробности про Logcat можно прочитать в официальной документации.

Как найти Logcat

  1. В UI-интерфейсе в Android Studio: View > Tool Windows > Logcat или option+6 (Mac).
  2. Через терминал: 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 читайте в официальной документации. Ниже представлены некоторые из них:

  1. adb logcat - вывод логов в реальном времени в терминал
  2. adb logcat >> <path/file.txt> - сохранение логов в файл, где <path/file.txt> - путь и название файла с логами
  3. adb logcat '*:<level>' - вывод логов определенного уровня, где - V — Verbose, D — Debug, I — Info, W — Warn, E — Error, F — Fatal
  4. adb logcat -c - очистка логов