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
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.
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 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.
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 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.
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_log | iOS | Strukturovaný | Systémová | Console.app | Nízká |
| CocoaLumberjack | iOS | Text/JSON | DDFileLogger | Ano (vlastní) | Střední |
| Timber | Android | Text | Logcat/Vlastní | Tree | Nízká |
| Sentry | iOS/Android | JSON | Serverová | Ano | Střední |
| Logcat | Android | Text | Buffer | ADB | Ní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 — 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í.
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í — 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ý.
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 — 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 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 — 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 — č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
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í.
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.
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ů.
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.
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í
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í.