Loggning och övervakning är två pelare för stabilitet i mobila applikationer. Enligt Gartner (2025) kommer marknaden för APM-lösningar att nå 8 miljarder dollar år 2027. Korrekt loggning gör det möjligt att inte bara hitta buggar utan också förutsäga problem innan de påverkar användarna.
Viktigaste punkterna
Loggning av mobila applikationer på iOS bygger på os_log — Apples inbyggda system, tillgängligt sedan iOS 10. os_log skriver loggar till en enda systemlogg (på enheten eller via Console.app), stöder kategorier, nivåer och integritetstaggar. Kombinationen av loggning och övervakning på iOS via Console.app och xcrun möjliggör realtidsspårning av fel och prestanda.
os_log har nivåer: Default, Info, Debug, Error, Fault. I produktion behålls Error och Fault — Debug och Info inaktiveras. Att välja rätt nivå är en del av strategin för övervakning av mobila applikationer på iOS. Integritet: %{public}@ för oskyddade data, %{private}@ för personuppgifter.
CocoaLumberjack är ett populärt bibliotek för iOS-loggning. Till skillnad från os_log stöder det anpassade format, asynkron skrivning och logrotation. DDLog, DDTTYLogger (konsol), DDFileLogger (fil med rotation). För fjärrövervakning kan CocoaLumberjack kombineras med os_log — skriv till en fil för fjärrloggning och till os_log för Console.app.
För loggning av mobila applikationer på Android används Timber — ett bibliotek av Jake Wharton som har blivit standard för plattformen. Timber är ett omslag över Android Log (Logcat) som automatiskt lägger till klasstaggen och konfigurerar Tree. Timber är en del av Androids övervakningssystem för mobila applikationer: DebugTree för felsökning, CrashlyticsTree för att skicka data.
Timber använder Tree — en komponent som bestämmer vad som ska göras med loggen. I felsökningsbyggen DebugTree (utdata till Logcat), i release — CrashlyticsTree (skicka krascher). Timber.wtf() loggar allvarliga fel. Timber.tag("CustomTag") åsidosätter taggen. För effektiv övervakning kombineras Timber med APM-verktyg.
Android Log har nivåer: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 tar bort Log.d och Log.v i release — Timber tillåter loggning via Plant. Valet av nivå påverkar kvaliteten på övervakningen av mobilapplikationen — i produktion behålls WARN och ERROR.
| Verktyg | Plattform | Format | Rotation | Fjärr | Komplexitet |
|---|---|---|---|---|---|
| os_log | iOS | Strukturerad | System | Console.app | Låg |
| CocoaLumberjack | iOS | Text/JSON | DDFileLogger | Ja (anpassad) | Medel |
| Timber | Android | Text | Logcat/Anpassad | Tree | Låg |
| Sentry | iOS/Android | JSON | Server | Ja | Medel |
| Logcat | Android | Text | Buffert | ADB | Låg |
När du väljer ett loggningsverktyg, överväg: behöver du fjärrloggning, hur ofta loggar ändras och vem som ska analysera dem. För startups räcker os_log eller Timber. För företag — CocoaLumberjack med serversändning. På IT Sectr använder vi kombinationen Timber + Crashlytics för Android och os_log + CocoaLumberjack för iOS.
Structured logging — skriva loggar i JSON-format istället för vanlig text. Exempel: istället för "User login failed" skriver vi {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Detta är grunden för automatisk övervakning — ELK-stacken och Grafana filtrerar, aggregerar och analyserar sådan data.
Filtrering efter fält: hitta alla loggar med event=crash från den senaste timmen. Aggregering: skapa ett diagram över antal fel per appversion. Integration med ELK (Elasticsearch, Logstash, Kibana) eller Grafana. Structured logging är inte obligatoriskt för första utgåvor, men blir kritiskt när DAU överstiger 10 000.
Fjärrloggning — skicka loggar från enheten till en server för centraliserad övervakning. Implementeras via anpassat Tree (Android) eller HTTP-förfrågningar. Skicka endast Error och Warning — slösa inte användarens trafik. Logrotation: DDFileLogger (iOS) varje 1 MB eller 1 dag. På Android är Logcat-bufferten begränsad.
Application Performance Monitoring (APM) — en klass av verktyg för övervakning av mobila applikationer. APM mäter: starttid, nätverksförfrågningar, FPS, minnesanvändning, kraschfrekvens. Huvudaktörer: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — inte bara krashrapportering, utan även prestandaövervakning. Sentry Performance skapar distribuerade spår som visar hur lång tid varje fas tog: från knapptryckning till serversvar. Stöder iOS, Android, Flutter, React Native. Gratis upp till 5k händelser per månad.
New Relic Mobile ger mätvärden: antal sessioner, tid i appen, kraschfrekvens, nätverksförfrågningar. Datadog Mobile är ett modernare verktyg med realtidsinstrumentpaneler och varningar. Båda är betalda, men har gratisnivåer. IT Sectr rekommenderar att börja med Firebase Performance och byta till betald APM när DAU överstiger 100 000.
Firebase Performance — ett gratis verktyg för övervakning av mobila applikationer från Google. Samlar automatiskt in mätvärden: appstarttid, HTTP-förfrågningar (URL, metod, svarskod), FPS. För anpassad spårning, använd Trace API. Integration: lägg till SDK i build.gradle (Android) eller Podfile (iOS).
Trace — ett tidssegment med start och slut som du mäter. Exempel: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Mätvärden — numeriska indikatorer (svarsstorlek, antal objekt). Firebase Performance kräver ingen serverinfrastruktur — all data går via Firebase SDK. Vid övervakning av mobila applikationer ger Trace API kontext för prestandaanalys.
Vanliga frågor
Standardnivåer: ERROR (kritiska fel), WARN (potentiella problem), INFO (viktiga händelser), DEBUG (felsökning), VERBOSE (detaljerad spårning). I produktion behålls ERROR, WARN och INFO, övriga inaktiveras.
Timber är ett omslagsbibliotek över Logcat av Jake Wharton för loggning av mobila applikationer på Android. Det infogar automatiskt klasstaggen, konfigurerar Tree och inaktiverar loggar i produktion med en rad kod.
APM (Application Performance Monitoring) — en klass av verktyg för att spåra prestanda: starttid, nätverksförfrågningar, minnesanvändning, kraschfrekvens. Vid övervakning av mobila applikationer hjälper New Relic, Datadog och Firebase Performance att hitta flaskhalsar innan användarklagomål.
För en startup räcker Firebase Performance — ett gratis verktyg för övervakning av mobila applikationer. New Relic och Datadog ansluts när detaljerad spårning och anpassade instrumentpaneler behövs. IT Sectr rekommenderar att börja med Firebase och byta till betalda lösningar när DAU överstiger 100 000.
Structured logging är ett loggformat i JSON eller nyckel-värde istället för vanlig text. Det gör det möjligt att filtrera loggar efter fält, skapa diagram och automatiskt analysera i ELK eller Grafana. Utan strukturerade loggar är det svårt att hitta mönster i tusentals poster.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.