Логирование и мониторинг — два столпа стабильности мобильного приложения. По данным Gartner (2025), рынок APM-решений достигнет $8 млрд к 2027 году. Правильное логирование позволяет не только находить баги, но и предсказывать проблемы до того, как они повлияют на пользователей.
Главное
Логирование мобильных приложений на iOS строится на os_log — встроенной системе Apple, доступной с iOS 10. os_log пишет логи в единый системный лог (on-device или через Console.app), поддерживает категории, уровни и privacy-теги. Комбинация логирования и мониторинга на iOS через Console.app и xcrun позволяет отслеживать ошибки и производительность в реальном времени.
os_log имеет уровни: Default, Info, Debug, Error, Fault. В продакшене оставляют Error и Fault — Debug и Info отключаются. Выбор правильного уровня — часть стратегии мониторинга мобильных приложений на iOS. Privacy: %{public}@ для незащищённых данных, %{private}@ для персональных.
CocoaLumberjack — популярная библиотека для iOS-логирования. В отличие от os_log, она поддерживает кастомные форматы, асинхронную запись и log rotation. DDLog, DDTTYLogger (консоль), DDFileLogger (файл с ротацией). Для удалённого мониторинга CocoaLumberjack можно комбинировать с os_log — писать в файл для remote logging и в os_log для Console.app.
Для логирования мобильных приложений на Android используют Timber — библиотеку от Jake Wharton, ставшую стандартом для платформы. Timber — обёртка над Android Log (Logcat), которая автоматически добавляет тег класса и настраивает Tree. Timber — часть системы мониторинга мобильных приложений Android: DebugTree для отладки, CrashlyticsTree для отправки данных.
Timber использует Tree — компонент, который решает, что делать с логом. В debug-сборке DebugTree (вывод в Logcat), в release — CrashlyticsTree (отправка крашей). Timber.wtf() логирует фатальные ошибки. Timber.tag("CustomTag") переопределяет тег. Для эффективного мониторинга Timber комбинируют с APM-инструментами.
Android Log имеет уровни: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 вырезает Log.d и Log.v в release — Timber оставляет возможность логировать через Plant. Выбор уровня влияет на качество мониторинга мобильного приложения — в продакшене оставляют WARN и ERROR.
| Инструмент | Платформа | Формат | Ротация | Remote | Сложность |
|---|---|---|---|---|---|
| os_log | iOS | Структурированный | Системная | Console.app | Низкая |
| CocoaLumberjack | iOS | Текстовый/JSON | DDFileLogger | Да (кастомный) | Средняя |
| Timber | Android | Текстовый | Logcat/Custom | Tree | Низкая |
| Sentry | iOS/Android | JSON | Серверная | Да | Средняя |
| Logcat | Android | Текстовый | Буфер | ADB | Низкая |
При выборе инструмента логирования учитывайте: нужен ли remote logging, как часто меняются логи и кто их будет анализировать. Для стартапов достаточно os_log или Timber. Для enterprise — CocoaLumberjack с отправкой на сервер. В IT Sectr мы используем связку Timber + Crashlytics для Android и os_log + CocoaLumberjack для iOS.
Structured logging — запись логов в формате JSON, а не plain text. Пример: вместо "User login failed" пишем {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Это основа для автоматического мониторинга — ELK-стек и Grafana фильтруют, агрегируют и анализируют такие данные.
Фильтрация по полям: найдите все логи с event=crash за последний час. Агрегация: постройте график количества ошибок по версиям приложения. Интеграция с ELK (Elasticsearch, Logstash, Kibana) или Grafana. Structured logging не обязателен для первых релизов, но критичен при росте DAU выше 10 000.
Remote logging — отправка логов с устройства на сервер для централизованного мониторинга. Реализуется через кастомный Tree (Android) или HTTP-запросы. Отправляйте только Error и Warning — не тратьте трафик пользователя. Log rotation: DDFileLogger (iOS) каждые 1 МБ или 1 день. На Android — буфер Logcat ограничен.
Application Performance Monitoring (APM) — класс инструментов для мониторинга мобильных приложений. APM измеряет: время запуска, сетевые запросы, FPS, использование памяти, частоту крашей. Основные игроки: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — не только crash reporting, но и performance monitoring. Sentry Performance создаёт distributed traces, которые показывают, сколько времени занял каждый этап: от нажатия кнопки до ответа сервера. Поддерживает iOS, Android, Flutter, React Native. Бесплатно до 5k событий в месяц.
New Relic Mobile даёт метрики: количество сессий, время в приложении, частота крашей, сетевые запросы. Datadog Mobile — более современный инструмент с real-time дашбордами и алертами. Оба платные, но имеют бесплатные тиры. IT Sectr рекомендует начать с Firebase Performance, а переходить на платные APM при росте DAU выше 100 000.
Firebase Performance — бесплатный инструмент мониторинга мобильных приложений от Google. Автоматически собирает метрики времени запуска приложения, HTTP-запросов (URL, метод, код ответа), FPS. Для кастомной трассировки используйте Trace API. Интеграция: добавьте SDK в build.gradle (Android) или Podfile (iOS).
Trace — отрезок времени с началом и концом, который вы измеряете. Пример: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Метрики — числовые показатели (размер ответа, количество элементов). Firebase Performance не требует серверной инфраструктуры — все данные идут через Firebase SDK. При мониторинге мобильных приложений Trace API даёт контекст для анализа производительности.
Часто задаваемые вопросы
Стандартные уровни: ERROR (критические ошибки), WARN (потенциальные проблемы), INFO (ключевые события), DEBUG (отладка), VERBOSE (детальная трассировка). В продакшене оставляют ERROR, WARN и INFO, остальные отключают.
Timber — библиотека-обёртка над Logcat от Jake Wharton для логирования мобильных приложений на Android. Она автоматически подставляет тег класса, настраивает Tree и отключает логи в продакшене одной строкой кода.
APM (Application Performance Monitoring) — класс инструментов для отслеживания производительности: времени запуска, сетевых запросов, использования памяти, частоты крашей. При мониторинге мобильных приложений New Relic, Datadog и Firebase Performance помогают найти узкие места до жалоб пользователей.
Для стартапа достаточно Firebase Performance — бесплатного мониторинга мобильного приложения. New Relic и Datadog подключают при потребности в детальной трассировке и кастомных дашбордах. IT Sectr рекомендует начинать с Firebase и переходить на платные решения при росте DAU выше 100 000.
Structured logging — это формат логов в JSON или ключ-значение вместо plain text. Он позволяет фильтровать логи по полям, строить графики и автоматически анализировать в ELK или Grafana. Без структурированных логов сложно искать закономерности в тысячи записей.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.