Логирование и мониторинг в мобильной разработке: суть, какие инструменты и как настроить

Автор: IT Sectr Опубликовано: 2026-05-27 Время чтения: 8 мин

Логирование и мониторинг — два столпа стабильности мобильного приложения. По данным Gartner (2025), рынок APM-решений достигнет $8 млрд к 2027 году. Правильное логирование позволяет не только находить баги, но и предсказывать проблемы до того, как они повлияют на пользователей.

Главное

  • На iOS основные инструменты — os_log (встроенное системное логирование) и CocoaLumberjack (гибкая библиотека с ротацией и форматированием). Мониторинг на iOS позволяет контролировать производительность в реальном времени.
  • На Android стандарт — Timber (обёртка над Logcat) и системный Log. Timber автоматически подставляет тег класса и управляет уровнями логирования.
  • Structured logging — запись логов в JSON. Позволяет анализировать логи автоматически через ELK, Grafana или Datadog. Рекомендуется для production и автоматического мониторинга.
  • APM (Application Performance Monitoring) — класс инструментов для мониторинга мобильных приложений: New Relic, Datadog, Firebase Performance.
  • Log rotation и remote logging — обязательны для продакшена. Логи не должны заполнять память устройства и должны быть доступны разработчику удалённо.

Логирование и мониторинг на iOS: os_log и CocoaLumberjack

Логирование мобильных приложений на iOS строится на os_log — встроенной системе Apple, доступной с iOS 10. os_log пишет логи в единый системный лог (on-device или через Console.app), поддерживает категории, уровни и privacy-теги. Комбинация логирования и мониторинга на iOS через Console.app и xcrun позволяет отслеживать ошибки и производительность в реальном времени.

Log Level на iOS

os_log имеет уровни: Default, Info, Debug, Error, Fault. В продакшене оставляют Error и Fault — Debug и Info отключаются. Выбор правильного уровня — часть стратегии мониторинга мобильных приложений на iOS. Privacy: %{public}@ для незащищённых данных, %{private}@ для персональных.

CocoaLumberjack

CocoaLumberjack — популярная библиотека для iOS-логирования. В отличие от os_log, она поддерживает кастомные форматы, асинхронную запись и log rotation. DDLog, DDTTYLogger (консоль), DDFileLogger (файл с ротацией). Для удалённого мониторинга CocoaLumberjack можно комбинировать с os_log — писать в файл для remote logging и в os_log для Console.app.

Логирование и мониторинг на Android: Timber и Log Level

Для логирования мобильных приложений на Android используют Timber — библиотеку от Jake Wharton, ставшую стандартом для платформы. Timber — обёртка над Android Log (Logcat), которая автоматически добавляет тег класса и настраивает Tree. Timber — часть системы мониторинга мобильных приложений Android: DebugTree для отладки, CrashlyticsTree для отправки данных.

Timber в деталях

Timber использует Tree — компонент, который решает, что делать с логом. В debug-сборке DebugTree (вывод в Logcat), в release — CrashlyticsTree (отправка крашей). Timber.wtf() логирует фатальные ошибки. Timber.tag("CustomTag") переопределяет тег. Для эффективного мониторинга Timber комбинируют с APM-инструментами.

Log Level на Android

Android Log имеет уровни: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 вырезает Log.d и Log.v в release — Timber оставляет возможность логировать через Plant. Выбор уровня влияет на качество мониторинга мобильного приложения — в продакшене оставляют WARN и ERROR.

Инструмент Платформа Формат Ротация Remote Сложность
os_logiOSСтруктурированныйСистемнаяConsole.appНизкая
CocoaLumberjackiOSТекстовый/JSONDDFileLoggerДа (кастомный)Средняя
TimberAndroidТекстовыйLogcat/CustomTreeНизкая
SentryiOS/AndroidJSONСервернаяДаСредняя
LogcatAndroidТекстовыйБуферADBНизкая

При выборе инструмента логирования учитывайте: нужен ли remote logging, как часто меняются логи и кто их будет анализировать. Для стартапов достаточно os_log или Timber. Для enterprise — CocoaLumberjack с отправкой на сервер. В IT Sectr мы используем связку Timber + Crashlytics для Android и os_log + CocoaLumberjack для iOS.

Structured Logging

Structured logging — запись логов в формате JSON, а не plain text. Пример: вместо "User login failed" пишем {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Это основа для автоматического мониторинга — ELK-стек и Grafana фильтруют, агрегируют и анализируют такие данные.

Преимущества structured logging

Фильтрация по полям: найдите все логи с event=crash за последний час. Агрегация: постройте график количества ошибок по версиям приложения. Интеграция с ELK (Elasticsearch, Logstash, Kibana) или Grafana. Structured logging не обязателен для первых релизов, но критичен при росте DAU выше 10 000.

Remote Logging и Log Rotation

Remote logging — отправка логов с устройства на сервер для централизованного мониторинга. Реализуется через кастомный Tree (Android) или HTTP-запросы. Отправляйте только Error и Warning — не тратьте трафик пользователя. Log rotation: DDFileLogger (iOS) каждые 1 МБ или 1 день. На Android — буфер Logcat ограничен.

APM и мониторинг мобильных приложений: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — класс инструментов для мониторинга мобильных приложений. APM измеряет: время запуска, сетевые запросы, FPS, использование памяти, частоту крашей. Основные игроки: Sentry (Performance), New Relic Mobile, Datadog Mobile.

Sentry Performance

Sentry — не только crash reporting, но и performance monitoring. Sentry Performance создаёт distributed traces, которые показывают, сколько времени занял каждый этап: от нажатия кнопки до ответа сервера. Поддерживает iOS, Android, Flutter, React Native. Бесплатно до 5k событий в месяц.

New Relic и Datadog

New Relic Mobile даёт метрики: количество сессий, время в приложении, частота крашей, сетевые запросы. Datadog Mobile — более современный инструмент с real-time дашбордами и алертами. Оба платные, но имеют бесплатные тиры. IT Sectr рекомендует начать с Firebase Performance, а переходить на платные APM при росте DAU выше 100 000.

Firebase Performance

Firebase Performance — бесплатный инструмент мониторинга мобильных приложений от Google. Автоматически собирает метрики времени запуска приложения, HTTP-запросов (URL, метод, код ответа), FPS. Для кастомной трассировки используйте Trace API. Интеграция: добавьте SDK в build.gradle (Android) или Podfile (iOS).

Trace и метрики

Trace — отрезок времени с началом и концом, который вы измеряете. Пример: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Метрики — числовые показатели (размер ответа, количество элементов). Firebase Performance не требует серверной инфраструктуры — все данные идут через Firebase SDK. При мониторинге мобильных приложений Trace API даёт контекст для анализа производительности.

Часто задаваемые вопросы

Какие уровни логирования существуют и когда их использовать?

Стандартные уровни: ERROR (критические ошибки), WARN (потенциальные проблемы), INFO (ключевые события), DEBUG (отладка), VERBOSE (детальная трассировка). В продакшене оставляют ERROR, WARN и INFO, остальные отключают.

Чем Timber отличается от Logcat в Android?

Timber — библиотека-обёртка над Logcat от Jake Wharton для логирования мобильных приложений на Android. Она автоматически подставляет тег класса, настраивает Tree и отключает логи в продакшене одной строкой кода.

Что такое APM и зачем он нужен мобильному приложению?

APM (Application Performance Monitoring) — класс инструментов для отслеживания производительности: времени запуска, сетевых запросов, использования памяти, частоты крашей. При мониторинге мобильных приложений New Relic, Datadog и Firebase Performance помогают найти узкие места до жалоб пользователей.

Стоит ли использовать платные APM-решения для стартапа?

Для стартапа достаточно Firebase Performance — бесплатного мониторинга мобильного приложения. New Relic и Datadog подключают при потребности в детальной трассировке и кастомных дашбордах. IT Sectr рекомендует начинать с Firebase и переходить на платные решения при росте DAU выше 100 000.

Что такое structured logging и чем он лучше обычного текста?

Structured logging — это формат логов в JSON или ключ-значение вместо plain text. Он позволяет фильтровать логи по полям, строить графики и автоматически анализировать в ELK или Grafana. Без структурированных логов сложно искать закономерности в тысячи записей.

Итоги

  • os_log — базовый инструмент логирования и мониторинга на iOS. CocoaLumberjack добавляет гибкость, ротацию и remote logging.
  • Timber — стандарт логирования мобильных приложений на Android. DebugTree для debug, CrashlyticsTree для release.
  • Structured logging (JSON) необходим для автоматического анализа логов. Интегрируется с ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — бесплатный инструмент мониторинга мобильных приложений для стартапов.
  • Log rotation предотвращает переполнение памяти устройства. Настройте DDFileLogger (iOS) или используйте буфер Logcat (Android).
  • Remote logging — отправляйте только Error и Warning логи. Все логи убивают трафик пользователя.
  • Trace API и breadcrumbs (Sentry) дают контекст для мониторинга мобильных приложений, превращая логи в историю происшествия.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект