Гид по технологиям

Как использовать logcat на Android — сбор и анализ системных логов

7 min read Android. Обновлено 22 Dec 2025
Как использовать logcat на Android
Как использовать logcat на Android

Logcat позволяет получить системные логи Android для отладки приложений и диагностики проблем. Установите ADB, включите отладку по USB, соберите логи командой adb logcat или получите готовый архив через adb bugreport. Делайте фильтрацию по тегам и приоритетам, следите за приватностью и используйте привязанный ADB вместо рутирования устройства, когда это возможно.

Почему logcat нужен разработчикам и продвинутым пользователям

Android скрывает большинство подробностей от обычного пользователя. Это удобно, но когда приложение падает или ведёт себя странно, нужна подробная системная информация. Logcat даёт такой доступ: это поток сообщений от системных компонентов и приложений, включающий ошибки, предупреждения, отладочные сообщения и системные события.

Краткое определение

  • Logcat — инструмент для чтения системных логов Android через Android Debug Bridge (ADB).

android-logcat

Изображение: пример вывода logcat на экране терминала с цветовой подсветкой ошибок

Что вам понадобится перед началом

  • Компьютер с macOS, Linux или Windows.
  • Кабель USB для подключения устройства или настроенный беспроводной ADB.
  • Доступ к настройкам устройства, чтобы включить режим разработчика.
  • Понимание того, какие части лога нужно отправлять разработчику, чтобы избежать утечки личных данных.

Важное

Если речь идёт о конфиденциальной информации, всегда обсудите с разработчиком, какой диапазон времени или какие теги логов необходимы, и по возможности замаскируйте личные данные перед отправкой.

Установка ADB по операционной системе

macOS

  1. Установите Homebrew, если он ещё не установлен.
  2. Выполните в терминале:
brew install android-platform-tools

BrewAndroid

Изображение: логотип Homebrew и установка пакета android-platform-tools

Linux (Ubuntu и производные)

sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot

Для других дистрибутивов используйте менеджер пакетов вашей системы или установите официальные платформенные инструменты из архива Android.

Windows

  • Можно использовать один клик-установщик с XDA Developers, он включает драйверы и fastboot.
  • Альтернатива — установить через Chocolatey:
choco install adb

Если драйверы не устанавливаются автоматически, посетите сайт производителя устройства и скачайте OEM-драйверы.

Включение режима разработчика и отладки по USB

  1. Откройте настройки устройства и найдите О телефоне или О планшете.
  2. Найдите Номер сборки и тапните по нему семь раз, пока не появится сообщение о включении режима разработчика.

DeveloperMode

Изображение: экран настройки с подсказкой о включении режима разработчика

  1. Вернитесь в корень настроек и откройте Параметры разработчика.

DeveloperOptions

Изображение: меню Параметры разработчика в настройках Android

  1. Включите Отладка по USB и подключите устройство к компьютеру. На экране устройства появится предупреждение, подтвердите доверие компьютеру.

USBDebugging

Изображение: системное предупреждение при включении отладки по USB

Примечание

Если устройство не запрашивает подтверждение подключения, проверьте настройки безопасности и кабель. Иногда помогает смена USB-порта или кабеля на оригинальный.

Проверка соединения и базовые команды

Проверьте, видит ли ADB ваше устройство:

adb devices -l

Результат покажет список подключённых устройств и их статус. Если статус unauthorized, примите авторизацию на устройстве.

Чтобы начать просмотр логов в реальном времени, выполните:

adb logcat

Debugging

Изображение: поток logcat выводится в терминале

Чтобы сохранить вывод в файл на компьютере:

adb logcat > device-log.txt

Или с опцией для немедленной записи в файл на устройстве:

adb logcat -f /sdcard/device-log.txt

Чтобы получить одноразовый дамп и закрыть вывод, используйте флаг -d:

adb logcat -d > snapshot-log.txt

Файлы логов могут быть большими. Если вы забыли остановить запись, нажмите CTRL-C в терминале. Следите за свободным местом на дисках.

Форматы вывода и приоритеты сообщений

Logcat поддерживает уровни приоритета:

  • V — verbose (подробно)
  • D — debug (отладка)
  • I — info (информационные)
  • W — warn (предупреждения)
  • E — error (ошибки)
  • F — fatal (фатальные ошибки)
  • S — silent (тихо)

Полный вывод можно включить через опцию формата времени и прочие флаги. Пример с отображением времени и PID:

adb logcat -v time

Фильтрация по приоритету и тегам

Формат фильтра: TAG:PRIORITY. Пример — показать ошибки только для тега MyApp и скрыть всё остальное:

adb logcat MyApp:E *:S

Показать только сообщения с ошибками и предупреждениями для всех тегов:

adb logcat *:W

Фильтры помогают сократить объём данных и найти нужные события быстрее.

Дополнительные буферы и опции

Android хранит разные буферы логов: main, system, events, radio, crash. По умолчанию читается main. Чтобы прочитать конкретный буфер:

adb logcat -b system -b crash

Для ограничения размера буфера на устройстве используется флаг -G:

adb logcat -G 16M

Это помогает ограничить потребление памяти, но не уменьшит размер файла при перенаправлении через компьютер.

Быстрые приёмы поиска и анализа

  • Найти исключения Java/Runtime:
adb logcat | grep -i exception
  • Извлечь только строки с вашим пакетом:
adb logcat | grep com.example.myapp
  • Скомбинировать с временными метками и контекстом с помощью awk или sed для отчётов.

Примеры полезных команд

# Захватить 1 минуту логов в отдельный файл с меткой времени
adb logcat -d > logs_$(date +%Y%m%d_%H%M%S).txt

# Только сообщения с приоритетом error по всем тегам
adb logcat *:E -d > errors.txt

Как получить полный системный отчёт

Для более детальной диагностики разработчики обычно просят bugreport. Эта команда собирает логи, дампы памяти, конфигурацию и другие служебные данные:

adb bugreport bugreport.zip

Архив может быть большим, но он даёт комплексный снимок состояния устройства в момент сбора.

Rooted устройства и приложения для локального сбора

Если устройство рута, есть приложения, которые умеют собирать логи на самом устройстве:

  • aLogCat — чтение и фильтрация логов прямо на устройстве, цветовая подсветка, экспорт файлов.

ALogCat

Изображение: интерфейс aLogCat с подсветкой критических сообщений

  • aLogRec — длительное логирование на SD-карту, можно настроить ротацию файлов.

alogrec

Изображение: приложение aLogRec для непрерывной записи логов на карту памяти

Редактирование логов на устройстве

Для просмотра и правки файлов на самом устройстве можно использовать текстовые редакторы, например Vim Touch. Но будьте осторожны с правами доступа и не меняйте системные файлы.

Важно

Рутирование повышает риск вредоносных программ и может сломать поддержку некоторых банковских и платёжных приложений. Для большинства задач достаточно ADB через компьютер.

Приватность и безопасность при отправке логов

Логи могут содержать персональные данные: номера телефонов, токены, местоположение, части идентификаторов. Рекомендации:

  • Предоставляйте только нужный диапазон времени логов.
  • При возможности замаскируйте или удалите PII перед отправкой.
  • Попросите разработчика прислать шаблон или инструкции, какие теги/уровни нужны.

Отладка беспроводного ADB (Android 11 и выше упрощено)

Можно включить беспроводный режим через настройки разработчика или через USB-подключение выполнить:

adb tcpip 5555
adb connect :5555

После подключения безопаснее отключить tcpip режим или перезагрузить устройство, чтобы закрыть порт.

Частые ошибки и их исправление

  • Устройство не отображается в списке adb devices:

    • Проверьте кабель и порт.
    • Установите драйверы на Windows.
    • Проверьте, включена ли отладка по USB.
    • На Linux добавьте udev правило для производителя устройства.
  • Статус unauthorized:

    • Примите запрос на подтверждение на устройстве.
    • Если не помогает, выполните adb kill-server и adb start-server, затем переподключите устройство.
  • Ограничение доступа на macOS Catalina и выше:

    • Разрешите терминалу доступ к USB и файлам в настройках безопасности системы.

SOP для поддержки: как просить логи у пользователя

Шаблон запроса логов от службы поддержки:

  1. Уточнить шаги для воспроизведения бага и точное время возникновения.
  2. Попросить версию приложения и Android OS.
  3. Попросить файл логов за окно времени ±5 минут от ошибки, или дать команды:
adb logcat -d > logs.txt
adb bugreport bugreport.zip
  1. Попросить указать, есть ли в логах персональные данные, и согласовать способ редактирования/удаления PII.

Критерии приёмки

  • Лог должен покрывать указанное время события.
  • В логах должны присутствовать строки с уровнем E или F, относящиеся к пакету приложения.
  • Приложена версия APK и шаги воспроизведения.

Практическая плейбук процедура для разработчика

  1. Получить от пользователя логи и bugreport при необходимости.
  2. Открыть файл и найти временную метку ошибки.
  3. Поискать stacktrace исключений и сопоставить с исходным кодом.
  4. Если нужен дополнительный контекст, попросить расширенный лог с -v time и фильтрацией по тегам.
  5. Предложить патч или инструкцию тестирования и проверить фикса на устройстве пользователя.

Чеклист по ролям

Пользователь

  • Включил отладку по USB
  • Подключил устройство и подтвердил авторизацию
  • Отправил логфайл или bugreport

Саппорт

  • Проверил версию ПО и ОС
  • Попросил конкретное время и шаги воспроизведения
  • Предупредил о возможной персональной информации

Разработчик

  • Отметил ключевые stacktrace
  • Сопоставил с коммитами и сборкой
  • Предложил патч и тесты

Когда logcat не помогает

  • Если проблема воспроизводится только на сервере или в удалённой инфраструктуре — нужны серверные логи.
  • Если ошибка происходит до инициализации логирования — может потребоваться более глубокий дамп системы или трассировка ядра.
  • Если устройство сильно перегружено или повреждена файловая система, чтение логов может быть неполным.

Решение для root только в крайнем случае

Root открывает доступ к более глубинным инструментам, но увеличивает риски. Для большинства сценариев рекомендовано избегать рута и использовать ADB через компьютер.

Решающее дерево для сбора логов

flowchart TD
  A[Проблема на устройстве] --> B{Можно подключить через USB?}
  B -- Да --> C[Включить отладку по USB и запустить adb logcat]
  B -- Нет --> D{Можно подключиться по WiFi?}
  D -- Да --> E[Настроить adb connect и собрать логи]
  D -- Нет --> F[Попросить пользователя установить приложение для сбора логов]
  C --> G{Нужен полный отчёт?}
  G -- Да --> H[Выполнить adb bugreport]
  G -- Нет --> I[Собрать фильтрованные логи и отправить]

Тестовые кейсы и критерии приёмки

  • При воспроизведении бага зафиксирован стектрейс уровня E или F — пройдено.
  • Лог покрывает временное окно указанное пользователем — пройдено.
  • Разработчик смог локализовать причину по логам — пройдено.

Заключение

Logcat остаётся незаменимым инструментом при отладке Android-приложений. Он прост в использовании, если подготовить устройство и понимать базовые фильтры. Всегда соблюдайте осторожность с персональными данными и по возможности используйте привязанный ADB вместо рута.

Короткий план действий

  • Установите ADB и включите отладку по USB.
  • Подключите устройство и проверьте adb devices.
  • Соберите adb logcat или adb bugreport и отправьте разработчику.

Благодарю за внимание

А теперь ваша очередь

Поделитесь в комментариях, какие методы вы использовали для сбора логов и какие сложности встречались. Это поможет сформировать лучшие практики для сообщества.

Важно

Если вы отправляете логи внешним разработчикам, предварительно обсудите с ними методы обезличивания данных и безопасную передачу файлов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Prisma + Next.js: подключение к PostgreSQL
Разработка

Prisma + Next.js: подключение к PostgreSQL

Копирование и перемещение файлов в Windows
Windows

Копирование и перемещение файлов в Windows

Синхронизация установок Google Play на все устройства
Android.

Синхронизация установок Google Play на все устройства

Отключить G‑SYNC: глобально и для отдельных игр
Hardware

Отключить G‑SYNC: глобально и для отдельных игр

Подключение Xbox‑контроллера к Apple TV
Гайды

Подключение Xbox‑контроллера к Apple TV

Apache Virtual Hosts — настройка сайтов
Серверы

Apache Virtual Hosts — настройка сайтов