Logcat - инструмент в Android Studio, который кроме прикольного названия еще и является незаменимым помощником. Он показывает логи от активного устройства в "живом" времени.
Каждое сообщение содержит информацию (в порядке следования):
время, процесс и поток, тег, имя пакета, уровень, текст сообщения.
Уровни сообщения обозначаются буквами:
- fatal - F
- error - E
- warning - W
- info - I
- debug - D
- verbose - V
Фильтры
Сообщения удобно фильтруются по принципу "ключ:значение".
Основные ключи фильтра:
- tag: по тегу.
- package: по пакету ("" только сообщения из пакетов открытого проекта).
- process: по процессу.
- message: по тексту сообщения.
- level: по уровню сообщения ("level:debug" сообщения debug и выше).
- age: за время (s, m, h, d) ("age:5m" сообщения за последние 5 минут).
Инструмент очень гибкий, можно использовать:
Исключающие фильтры
-tag:myTag
Регулярные выражения
tag~:my.*Tag
Комбинированные фильтры
(tag:special | level:error) & package:mine
Полезные фильтры:
- package:mine - только сообщения из пакетов открытого проекта
- is:crash - сообщения, касающиеся нарушения работоспособности приложения
- is:stacktrace - все что выглядит как stacktrace
Запись в Logcat
Для записи в лог используется класс Log.
Хорошим внутренним соглашением является создание константы тега для каждого класса, и передачи ее при логировании.
У класса Log есть статические методы для записи сообщений в лог. Для каждого уровня сообщения отдельный метод, названный по букве уровня сообщений.
Проще показать на примере:
Log.e(...) - запишет сообщение уровня error
Log.d(...) - запишет сообщение уровня debug
Сигнатура
У каждого метода существует 2 варианта:
Log.d(tag: String?, msg: String)
Log.d(tag: String?, msg: String?, tr: Throwable?)
tag - определяет класс, откуда сообщение
msg - текст сообщения
tr - исключение
Примеры сообщений
* Exception() - вернет текущий stacktrace.
#программирование #android #debug