Логиране и мониторинг в мобилната разработка: същност, инструменти и как да настроите

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

Логирането и мониторингът са два стълба на стабилността на мобилното приложение. Според Gartner (2025), пазарът на APM решения ще достигне $8 млрд до 2027 г. Правилното логиране позволява не само намиране на грешки, но и предвиждане на проблеми, преди да засегнат потребителите.

Основни точки

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

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

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

Log Level на iOS

os_log има нива: Default, Info, Debug, Error, Fault. В продукция се запазват Error и Fault — Debug и Info се изключват. Изборът на правилното ниво е част от стратегията за мониторинг на мобилни приложения на iOS. Поверителност: %{public}@ за незащитени данни, %{private}@ за лични данни.

CocoaLumberjack

CocoaLumberjack е популярна библиотека за iOS логиране. За разлика от os_log, тя поддържа персонализирани формати, асинхронен запис и ротация на логове. DDLog, DDTTYLogger (конзола), DDFileLogger (файл с ротация). За отдалечен мониторинг CocoaLumberjack може да се комбинира с os_log — пишете във файл за отдалечено логиране и в 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.

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

При избора на инструмент за логиране вземете предвид: нуждаете ли се от отдалечено логиране, колко често се променят логовете и кой ще ги анализира. За стартиращи фирми са достатъчни os_log или Timber. За предприятия — CocoaLumberjack с изпращане до сървър. В IT Sectr използваме комбинацията Timber + Crashlytics за Android и os_log + CocoaLumberjack за iOS.

Структурирано логиране

Структурирано логиране — запис на логове в JSON формат вместо plain text. Пример: вместо "User login failed" пишем {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Това е основата за автоматичен мониторинг — ELK стекът и Grafana филтрират, агрегират и анализират такива данни.

Предимства на структурираното логиране

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

Отдалечено логиране и ротация на логове

Отдалечено логиране — изпращане на логове от устройството до сървър за централизиран мониторинг. Реализира се чрез персонализиран Tree (Android) или HTTP заявки. Изпращайте само Error и Warning — не хабете трафика на потребителя. Ротация на логове: DDFileLogger (iOS) на всеки 1 MB или 1 ден. На Android буферът на Logcat е ограничен.

APM и мониторинг на мобилни приложения: Sentry, New Relic, Datadog

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

Sentry Performance

Sentry — не само отчитане на сривове, но и мониторинг на производителността. Sentry Performance създава разпределени трасировки, които показват колко време е отнел всеки етап: от натискане на бутон до отговор от сървъра. Поддържа iOS, Android, Flutter, React Native. Безплатно до 5k събития на месец.

New Relic и Datadog

New Relic Mobile предоставя метрики: брой сесии, време в приложението, честота на сривове, мрежови заявки. Datadog Mobile е по-модерен инструмент с табла за управление в реално време и аларми. И двата са платени, но имат безплатни нива. 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.

Какво е структурирано логиране и с какво е по-добро от обикновения текст?

Структурираното логиране е формат на логове в JSON или ключ-стойност вместо plain text. То позволява филтриране на логове по полета, изграждане на графики и автоматичен анализ в ELK или Grafana. Без структурирани логове е трудно да се намерят модели в хиляди записи.

Резюме

  • os_log — основният инструмент за логиране и мониторинг на iOS. CocoaLumberjack добавя гъвкавост, ротация и отдалечено логиране.
  • Timber — стандартът за логиране на мобилни приложения на Android. DebugTree за отстраняване на грешки, CrashlyticsTree за release.
  • Структурираното логиране (JSON) е необходимо за автоматичен анализ на логове. Интегрира се с ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — безплатен инструмент за мониторинг на мобилни приложения за стартиращи фирми.
  • Ротацията на логове предотвратява препълване на паметта на устройството. Конфигурирайте DDFileLogger (iOS) или използвайте буфера на Logcat (Android).
  • Отдалечено логиране — изпращайте само Error и Warning логове. Всички логове изразходват трафика на потребителя.
  • Trace API и breadcrumbs (Sentry) предоставят контекст за мониторинг на мобилни приложения, превръщайки логовете в история на инцидент.

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

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта