Logování a monitorování v mobilním vývoji: podstata, jaké nástroje a jak nastavit

Autor: IT Sectr Publikováno: 2026-05-27 Doba čtení: 8 min

Logování a monitorování jsou dva pilíře stability mobilní aplikace. Podle Gartner (2025) dosáhne trh APM řešení do roku 2027 8 miliard dolarů. Správné logování umožňuje nejen nacházet chyby, ale také předvídat problémy dříve, než ovlivní uživatele.

Hlavní body

  • Na iOS jsou hlavní nástroje os_log (vestavěné systémové logování) a CocoaLumberjack (flexibilní knihovna s rotací a formátováním). Monitorování na iOS umožňuje řídit výkon v reálném čase.
  • Na Androidu je standardem Timber (obal nad Logcat) a systémový Log. Timber automaticky vkládá značku třídy a spravuje úrovně logování.
  • Structured logging — zápis logů v JSON. Umožňuje automatickou analýzu logů přes ELK, Grafana nebo Datadog. Doporučeno pro produkci a automatické monitorování.
  • APM (Application Performance Monitoring) — třída nástrojů pro monitorování mobilních aplikací: New Relic, Datadog, Firebase Performance.
  • Rotace logů a vzdálené logování jsou pro produkci povinné. Logy by neměly zaplnit paměť zařízení a musí být vývojáři vzdáleně přístupné.

Logování a monitorování na iOS: os_log a CocoaLumberjack

Logování mobilních aplikací na iOS je postaveno na os_log — vestavěném systému Apple, dostupném od iOS 10. os_log zapisuje logy do jediného systémového logu (na zařízení nebo přes Console.app), podporuje kategorie, úrovně a značky soukromí. Kombinace logování a monitorování na iOS přes Console.app a xcrun umožňuje sledovat chyby a výkon v reálném čase.

Log Level na iOS

os_log má úrovně: Default, Info, Debug, Error, Fault. V produkci se ponechávají Error a Fault — Debug a Info se vypínají. Výběr správné úrovně je součástí strategie monitorování mobilních aplikací na iOS. Soukromí: %{public}@ pro nechráněná data, %{private}@ pro osobní data.

CocoaLumberjack

CocoaLumberjack je populární knihovna pro iOS logování. Na rozdíl od os_log podporuje vlastní formáty, asynchronní zápis a rotaci logů. DDLog, DDTTYLogger (konzole), DDFileLogger (soubor s rotací). Pro vzdálené monitorování lze CocoaLumberjack kombinovat s os_log — zapisovat do souboru pro vzdálené logování a do os_log pro Console.app.

Logování a monitorování na Androidu: Timber a Log Level

Pro logování mobilních aplikací na Androidu se používá Timber — knihovna od Jake Whartona, která se stala standardem platformy. Timber je obal nad Android Log (Logcat), který automaticky přidává značku třídy a konfiguruje Tree. Timber je součástí systému monitorování mobilních aplikací Android: DebugTree pro ladění, CrashlyticsTree pro odesílání dat.

Timber podrobně

Timber používá Tree — komponentu, která rozhoduje, co s logem dělat. V debug sestaveních DebugTree (výstup do Logcat), v release — CrashlyticsTree (odesílání pádů). Timber.wtf() loguje fatální chyby. Timber.tag("CustomTag") přepíše značku. Pro efektivní monitorování se Timber kombinuje s nástroji APM.

Log Level na Androidu

Android Log má úrovně: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 odstraňuje Log.d a Log.v v release — Timber umožňuje logování přes Plant. Volba úrovně ovlivňuje kvalitu monitorování mobilní aplikace — v produkci se ponechávají WARN a ERROR.

Nástroj Platforma Formát Rotace Vzdálené Složitost
os_logiOSStrukturovanýSystémováConsole.appNízká
CocoaLumberjackiOSText/JSONDDFileLoggerAno (vlastní)Střední
TimberAndroidTextLogcat/VlastníTreeNízká
SentryiOS/AndroidJSONServerováAnoStřední
LogcatAndroidTextBufferADBNízká

Při výběru nástroje pro logování zvažte: potřebujete vzdálené logování, jak často se logy mění a kdo je bude analyzovat. Pro startupy stačí os_log nebo Timber. Pro podniky — CocoaLumberjack s odesíláním na server. V IT Sectr používáme kombinaci Timber + Crashlytics pro Android a os_log + CocoaLumberjack pro iOS.

Structured Logging

Structured logging — zápis logů ve formátu JSON místo prostého textu. Příklad: místo "User login failed" píšeme {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. To je základ pro automatické monitorování — stack ELK a Grafana taková data filtrují, agregují a analyzují.

Výhody structured logging

Filtrování podle polí: najděte všechny logy s event=crash za poslední hodinu. Agregace: vytvořte graf počtu chyb podle verze aplikace. Integrace s ELK (Elasticsearch, Logstash, Kibana) nebo Grafana. Structured logging není povinný pro první vydání, ale stává se kritickým, když DAU přesáhne 10 000.

Vzdálené logování a rotace logů

Vzdálené logování — odesílání logů ze zařízení na server pro centralizované monitorování. Implementováno pomocí vlastního Tree (Android) nebo HTTP požadavků. Odesílejte pouze Error a Warning — neplytvejte provozem uživatele. Rotace logů: DDFileLogger (iOS) každých 1 MB nebo 1 den. Na Androidu je buffer Logcat omezený.

APM a monitorování mobilních aplikací: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — třída nástrojů pro monitorování mobilních aplikací. APM měří: čas spuštění, síťové požadavky, FPS, využití paměti, frekvenci pádů. Hlavní hráči: Sentry (Performance), New Relic Mobile, Datadog Mobile.

Sentry Performance

Sentry — nejen hlášení pádů, ale také monitorování výkonu. Sentry Performance vytváří distribuované stopy, které ukazují, jak dlouho trvala každá fáze: od stisknutí tlačítka po odpověď serveru. Podporuje iOS, Android, Flutter, React Native. Zdarma až 5k událostí měsíčně.

New Relic a Datadog

New Relic Mobile poskytuje metriky: počet relací, čas v aplikaci, frekvence pádů, síťové požadavky. Datadog Mobile je modernější nástroj s řídicími panely v reálném čase a výstrahami. Oba jsou placené, ale mají bezplatné úrovně. IT Sectr doporučuje začít s Firebase Performance a přejít na placené APM, když DAU přesáhne 100 000.

Firebase Performance

Firebase Performance — bezplatný nástroj pro monitorování mobilních aplikací od Google. Automaticky shromažďuje metriky: čas spuštění aplikace, HTTP požadavky (URL, metoda, kód odpovědi), FPS. Pro vlastní sledování použijte Trace API. Integrace: přidejte SDK do build.gradle (Android) nebo Podfile (iOS).

Trace a metriky

Trace — časový segment se začátkem a koncem, který měříte. Příklad: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metriky — číselné ukazatele (velikost odpovědi, počet položek). Firebase Performance nevyžaduje serverovou infrastrukturu — všechna data procházejí přes Firebase SDK. Při monitorování mobilních aplikací poskytuje Trace API kontext pro analýzu výkonu.

Často kladené otázky

Jaké úrovně logování existují a kdy je použít?

Standardní úrovně: ERROR (kritické chyby), WARN (potenciální problémy), INFO (klíčové události), DEBUG (ladění), VERBOSE (podrobné sledování). V produkci se ponechávají ERROR, WARN a INFO, ostatní se vypínají.

Čím se Timber liší od Logcat na Androidu?

Timber je knihovna-obal nad Logcat od Jake Whartona pro logování mobilních aplikací na Androidu. Automaticky vkládá značku třídy, konfiguruje Tree a vypíná logy v produkci jedním řádkem kódu.

Co je APM a proč ho mobilní aplikace potřebuje?

APM (Application Performance Monitoring) — třída nástrojů pro sledování výkonu: čas spuštění, síťové požadavky, využití paměti, frekvence pádů. Při monitorování mobilních aplikací pomáhají New Relic, Datadog a Firebase Performance najít úzká místa před stížnostmi uživatelů.

Měl by startup používat placená APM řešení?

Pro startup stačí Firebase Performance — bezplatný nástroj pro monitorování mobilních aplikací. New Relic a Datadog se připojují, když je potřeba podrobné sledování a vlastní řídicí panely. IT Sectr doporučuje začít s Firebase a přejít na placená řešení, když DAU přesáhne 100 000.

Co je structured logging a v čem je lepší než prostý text?

Structured logging je formát logů v JSON nebo klíč-hodnota místo prostého textu. Umožňuje filtrovat logy podle polí, vytvářet grafy a automaticky analyzovat v ELK nebo Grafana. Bez strukturovaných logů je obtížné hledat vzory v tisících záznamů.

Shrnutí

  • os_log — základní nástroj pro logování a monitorování na iOS. CocoaLumberjack přidává flexibilitu, rotaci a vzdálené logování.
  • Timber — standard logování mobilních aplikací na Androidu. DebugTree pro ladění, CrashlyticsTree pro release.
  • Structured logging (JSON) je nezbytný pro automatickou analýzu logů. Integruje se s ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — bezplatný nástroj pro monitorování mobilních aplikací pro startupy.
  • Rotace logů zabraňuje přetečení paměti zařízení. Nakonfigurujte DDFileLogger (iOS) nebo použijte buffer Logcat (Android).
  • Vzdálené logování — odesílejte pouze Error a Warning logy. Všechny logy spotřebovávají provoz uživatele.
  • Trace API a breadcrumbs (Sentry) poskytují kontext pro monitorování mobilních aplikací a mění logy v příběh incidentu.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt