Loggning och övervakning i mobil utveckling: essens, verktyg och hur man konfigurerar

Författare: IT Sectr Publicerad: 2026-05-27 Lästid: 8 min

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

  • På iOS är de främsta verktygen os_log (inbyggd systemloggning) och CocoaLumberjack (flexibelt bibliotek med rotation och formatering). Övervakning på iOS möjliggör realtidskontroll av prestanda.
  • På Android är standarden Timber (ett omslag över Logcat) och systemets Log. Timber infogar automatiskt klasstaggen och hanterar loggningsnivåer.
  • Structured logging — skriva loggar i JSON. Möjliggör automatisk logganalys via ELK, Grafana eller Datadog. Rekommenderas för produktion och automatisk övervakning.
  • APM (Application Performance Monitoring) — en klass av verktyg för övervakning av mobila applikationer: New Relic, Datadog, Firebase Performance.
  • Logrotation och fjärrloggning är obligatoriska för produktion. Loggar bör inte fylla enhetens minne och måste vara tillgängliga för utvecklaren på distans.

Loggning och övervakning på iOS: os_log och CocoaLumberjack

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.

Log Level på iOS

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

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.

Loggning och övervakning på Android: Timber och Log Level

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 i detalj

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.

Log Level på Android

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_logiOSStruktureradSystemConsole.appLåg
CocoaLumberjackiOSText/JSONDDFileLoggerJa (anpassad)Medel
TimberAndroidTextLogcat/AnpassadTreeLåg
SentryiOS/AndroidJSONServerJaMedel
LogcatAndroidTextBuffertADBLå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

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.

Fördelar med structured logging

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 och logrotation

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.

APM och övervakning av mobila applikationer: Sentry, New Relic, Datadog

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 Performance

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 och Datadog

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

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 och mätvärden

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

Vilka loggningsnivåer finns och när ska de användas?

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.

Hur skiljer sig Timber från Logcat på Android?

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.

Vad är APM och varför behöver en mobil app det?

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.

Ska en startup använda betalda APM-lösningar?

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.

Vad är structured logging och hur är det bättre än vanlig text?

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

  • os_log — det grundläggande verktyget för loggning och övervakning på iOS. CocoaLumberjack lägger till flexibilitet, rotation och fjärrloggning.
  • Timber — standarden för loggning av mobila applikationer på Android. DebugTree för felsökning, CrashlyticsTree för release.
  • Structured logging (JSON) är nödvändigt för automatisk logganalys. Integreras med ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — gratis verktyg för övervakning av mobila applikationer för startups.
  • Logrotation förhindrar att enhetens minne svämmar över. Konfigurera DDFileLogger (iOS) eller använd Logcat-bufferten (Android).
  • Fjärrloggning — skicka endast Error- och Warning-loggar. Alla loggar förbrukar användarens trafik.
  • Trace API och breadcrumbs (Sentry) ger kontext för övervakning av mobila applikationer och förvandlar loggar till en incidentberättelse.

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.

Diskutera projektet