Подробное руководство по Logcat в Android Studio с примерами |
23.07.2024 00:00 |
Всем привет! Я Muradian Arman - Senior mobile QA, обитаю тут t.me/LilBugHunters, тестирую андроид уже 4 года. Сегодня хочу поделиться секретами Logcat. Logcat в Android Studio имеет множества функций, которые ускоряют отладку, тестирование и в целом поиск нужной информации в логах. Однако, большинство в лучшем случае использует только поиск по ключевому слову и даже не подозревают как сильно могут ускорить свою работу. Поэтому появилась идея написания этого материала. Здесь я расскажу про Logcat в Android Studio, какие у него есть возможности, как его кастомизировать и использовать по максимуму, с практическими советами в каких ситуациях та или иная фича может вам пригодиться. Материал будет полезен как начинающим тестировщикам, так и матёрым разработчикам, ведь это универсальный инструмент, ускоряющий работу, если знать о всех его хитростях. О возможностях Logcat я недавно рассказывал на митапе посвященному мобильному тестированию, можете посмотреть его, если вам нужна визуальная демонстрация, в основном информация здесь будет повторять сказанное на митапе, однако, я постарался добавить сюда больше полезных примеров и практических советов. Бонус: в конце поделюсь приложением для практики работы с логами в Logcat, генератор разных типов логов, c возможностью эмулировать различные ошибки по типу ANR и крашей. Зачем нужно уметь читать логи и что такое LogcatЧтобы статья была полезна и для начинающих, базово расскажу зачем вообще читать логи и что вообще такое Logcat, как он работает и как его найти в Android Studio. Я думаю рассказывать зачем нужны логи разработчику, надобности нет, а вот многие тестировщики в лучшем случае просто собирают их и отдают на откуп разработчикам, не разбираясь. Но тестировщику нужно разбираться в логах! Уметь их читать и анализировать, так как это позволяет точнее локализировать ошибку, найти стабильные шаги к воспроизведению бага, понять, что вообще происходит в системе. Например, был ли это краш из-за ошибки или приложение закрылось из-за нехватки ресурсов в системе. Без чтения логов часто не возможно определить, клиентская ли это ошибка или бэкендовая, а это согласитесь очень важная деталь. И определение таких деталей до создания баг-репорта позволит сильно ускорить процесс фикса бага. LogcatСистема логирования Android представляет собой набор структурированных кольцевых буферов, поддерживаемых системным процессом logd. Logcat - это инструмент, который позволяет получить вам доступ к сообщениям, которые записываются в эти буферы в реальном времени. Есть два основных способа работы с Logcat: через ADB (Android Debug Bridge) – инструмент командной строки – и непосредственно из Android Studio. Здесь мы сфокусируемся на использовании Logcat в Android Studio, так как это наиболее быстрый и удобный способ работы с логами для разработчиков и тестировщиков. В новых версиях с обновлённым интерфейсом ищите кнопку с мордочкой котика на боковой панели студии. В старых версиях будет иконка полосатого прямоугольник с надписью "Logcat" в нижней панели. Если не нашли можете открыть Logcat через меню: «View» → «Tool Windows» → «Logcat» или воспользоваться строкой поиска, введя «Logcat». Анатомия лог-сообщенияПрежде чем мы перейдем к фильтрации и анализу логов, давайте разберемся, из чего состоит каждое лог-сообщение:
Обратите внимание, что сообщения о старте и остановке процесса показываются только, если есть проект открыт в Android Studio и будут отображаться независимо от заданных фильтров.
Уровни логированияУровни логирования определяют важность сообщения и помогают быстро визуально ориентироваться в логах:
Начало работыОсновное, что вам надо для начала работы с Logcat – это просто ввести поисковый запрос в поле фильтра, но давайте сначала посмотрим на элементы управления панели фильтрации:
Фильтрация: находим нужную информациюБез эффективной фильтрации Logcat превращается в хаотичный поток информации. К счастью, Android Studio предоставляет мощные инструменты фильтрации. Базовый поиск
Использование ключей фильтрацииДля более точного поиска используйте ключи:
Логические операторы и регулярные выраженияДля создания комплексных фильтров, которые удовлетворяют сразу нескольким критериям, комбинируйте ключи с помощью логических операторов и регулярных выражений: Важно: Регулярные выражения и оператор отрицания (-) работают только с ключами tag, package, message и line.
Логические операторы:
Регулярные выражения:
Пример комбинирования ключей: (tag:MyActivity | tag:DatabaseHelper) & level:debug & -message:test Этот фильтр покажет отладочные сообщения (level:debug) из классов MyActivity и DatabaseHelper, исключая сообщения, содержащие слово "test".
Окно вывода логовМы научились эффективно фильтровать логи, теперь давайте посмотрим, как настроить окно вывода для удобного просмотра информации. Кнопки управленияВ хабре нереально нормально прикрепить длинную картинку, поэтому постараюсь заменить иконки кнопок похожими emoji.
Варианты отображенияLogcat предлагает два основных вида отображения логов (кнопка ☰)
![]() На деле вы можете настроить оба вида как вам удобно, хоть сделать Standard View компактным, а Compact View более подробным, для этого просто выберите modify views в выпадающем меню. Под иконкой настройки view можно найти кнопку разделения панелей (Split panels). Функция позволяет разделить окно два и более окон, каждый со своим фильтром. Также те же самые действия доступны при нажатии правой кнопкой в любом месте окна вывода логов.
Импорт и экспорт логов![]() Одна из малозаметных, но очень полезных фич это импорт и экспорт логов. Она позволяет поделиться логами приложения, но не просто в текстовом формате, а в json, который можно импортировать в Logcat и быстро отфильтровать информацию с помощью всех тех инструментов, что были описаны выше. Logcat также автоматически сохраняет базовую инфу по девайсу, с которого собраны логи, такую как название и версия os.
Меню правой кнопкиНажав правую кнопку на сообщении откроется меню с широким набором возможностей. Некоторые кнопки будут показываться в зависимости от того по какому типу элемента вы нажали.
Настройки LogcatЧтобы открыть настройки Logcat переходим Android studio > Preferences > Tools > Logcat. Настроек не так много:
Приложение для практики работы с логами![]() Если вы пока начинающий тестировщик, и у вас нет под рукой реального приложения для отслеживания логов, или если ваши приложения никогда не падают и в них нет ошибок – я написал маленькое приложение, которое умеет генерировать разные типы логов и эмулировать классические ошибки такие как ANR, Crash и др. Скачать можно здесь: https://github.com/armmurr/AndroidTestLogsGenerator Планирую дополнить его модулем с практическими заданиями, где можно попробовать по логам понять что пошло не так, а потом проверить себя. Так что ставьте звёздочки и следите за обновлениями. А пока можете самостоятельно эмулировать сценарии и попробовать отыскать их в логах. Например, на уровне логирования Info вы найдёте события нажатий кнопок и другую информацию о действиях в приложении. Спасибо, что дочитали, надеюсь статья оказалась полезной! Также делюсь разными ценными материалами у себя в телеграм t.me/LilBugHunters подписывайтесь и давайте оставаться на связи! Также можете писать мне в linkedin. |