Loggen en monitoren zijn twee pijlers van de stabiliteit van mobiele applicaties. Volgens Gartner (2025) zal de markt voor APM-oplossingen in 2027 $8 miljard bereiken. Correct loggen stelt niet alleen in staat bugs te vinden, maar ook problemen te voorspellen voordat ze gebruikers beïnvloeden.
Belangrijkste punten
Mobiele applicatielogging op iOS is gebaseerd op os_log — het ingebouwde Apple-systeem, beschikbaar sinds iOS 10. os_log schrijft logs naar één systeemlog (op het apparaat of via Console.app), ondersteunt categorieën, niveaus en privacytags. De combinatie van loggen en monitoren op iOS via Console.app en xcrun maakt real-time fout- en prestatiebewaking mogelijk.
os_log heeft niveaus: Default, Info, Debug, Error, Fault. In productie worden Error en Fault behouden — Debug en Info worden uitgeschakeld. Het kiezen van het juiste niveau is onderdeel van de strategie voor monitoring van mobiele applicaties op iOS. Privacy: %{public}@ voor onbeschermde gegevens, %{private}@ voor persoonlijke gegevens.
CocoaLumberjack is een populaire bibliotheek voor iOS-logging. In tegenstelling tot os_log ondersteunt het aangepaste formaten, asynchroon schrijven en logrotatie. DDLog, DDTTYLogger (console), DDFileLogger (bestand met rotatie). Voor remote monitoring kan CocoaLumberjack worden gecombineerd met os_log — schrijf naar een bestand voor remote logging en naar os_log voor Console.app.
Voor mobiele applicatielogging op Android wordt Timber gebruikt — een bibliotheek van Jake Wharton die de standaard voor het platform is geworden. Timber is een wrapper over Android Log (Logcat) die automatisch de classtag toevoegt en Tree configureert. Timber maakt deel uit van het Android-monitoringsysteem voor mobiele applicaties: DebugTree voor debuggen, CrashlyticsTree voor het verzenden van gegevens.
Timber gebruikt Tree — een component die beslist wat er met de log gebeurt. In debug-builds DebugTree (uitvoer naar Logcat), in release — CrashlyticsTree (crashes verzenden). Timber.wtf() logt fatale fouten. Timber.tag("CustomTag") overschrijft de tag. Voor effectieve monitoring wordt Timber gecombineerd met APM-tools.
Android Log heeft niveaus: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 verwijdert Log.d en Log.v in release — Timber maakt loggen via Plant mogelijk. De niveaukeuze beïnvloedt de kwaliteit van de mobiele applicatiemonitoring — in productie worden WARN en ERROR behouden.
| Tool | Platform | Formaat | Rotatie | Remote | Complexiteit |
|---|---|---|---|---|---|
| os_log | iOS | Gestructureerd | Systeem | Console.app | Laag |
| CocoaLumberjack | iOS | Tekst/JSON | DDFileLogger | Ja (aangepast) | Gemiddeld |
| Timber | Android | Tekst | Logcat/Aangepast | Tree | Laag |
| Sentry | iOS/Android | JSON | Server | Ja | Gemiddeld |
| Logcat | Android | Tekst | Buffer | ADB | Laag |
Houd bij het kiezen van een loggingtool rekening met: of remote logging nodig is, hoe vaak logs veranderen en wie ze zal analyseren. Voor startups zijn os_log of Timber voldoende. Voor bedrijven — CocoaLumberjack met serververzending. Bij IT Sectr gebruiken we de combinatie Timber + Crashlytics voor Android en os_log + CocoaLumberjack voor iOS.
Structured logging — logs schrijven in JSON-formaat in plaats van platte tekst. Voorbeeld: in plaats van "User login failed" schrijven we {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Dit is de basis voor automatische monitoring — de ELK-stack en Grafana filteren, aggregeren en analyseren dergelijke gegevens.
Filteren op velden: vind alle logs met event=crash van het afgelopen uur. Aggregatie: maak een grafiek van het aantal fouten per app-versie. Integratie met ELK (Elasticsearch, Logstash, Kibana) of Grafana. Structured logging is niet verplicht voor eerste releases, maar wordt cruciaal wanneer de DAU boven de 10.000 komt.
Remote logging — het verzenden van logs van het apparaat naar een server voor gecentraliseerde monitoring. Geïmplementeerd via aangepaste Tree (Android) of HTTP-verzoeken. Stuur alleen Error en Warning — verspil geen gebruikersverkeer. Logrotatie: DDFileLogger (iOS) elke 1 MB of 1 dag. Op Android is de Logcat-buffer beperkt.
Application Performance Monitoring (APM) — een klasse tools voor monitoring van mobiele applicaties. APM meet: opstarttijd, netwerkverzoeken, FPS, geheugengebruik, crashfrequentie. Hoofdspelers: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — niet alleen crashrapportage, maar ook prestatiemonitoring. Sentry Performance creëert gedistribueerde traces die laten zien hoe lang elke fase duurde: van het indrukken van een knop tot de serverrespons. Ondersteunt iOS, Android, Flutter, React Native. Gratis tot 5k gebeurtenissen per maand.
New Relic Mobile biedt metrieken: aantal sessies, tijd in de app, crashfrequentie, netwerkverzoeken. Datadog Mobile is een modernere tool met real-time dashboards en alerts. Beide zijn betaald, maar hebben gratis niveaus. IT Sectr raadt aan om met Firebase Performance te beginnen en over te stappen op betaalde APM wanneer de DAU boven de 100.000 komt.
Firebase Performance — een gratis tool voor monitoring van mobiele applicaties van Google. Verzamelt automatisch metrieken: app-opstarttijd, HTTP-verzoeken (URL, methode, responscode), FPS. Gebruik de Trace API voor aangepaste tracing. Integratie: voeg de SDK toe aan build.gradle (Android) of Podfile (iOS).
Trace — een tijdssegment met begin en einde dat u meet. Voorbeeld: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metrieken — numerieke indicatoren (responsgrootte, aantal items). Firebase Performance heeft geen serverinfrastructuur nodig — alle gegevens gaan via de Firebase SDK. Bij het monitoren van mobiele applicaties biedt de Trace API context voor prestatieanalyse.
Veelgestelde vragen
Standaardniveaus: ERROR (kritieke fouten), WARN (potentiële problemen), INFO (belangrijke gebeurtenissen), DEBUG (debuggen), VERBOSE (gedetailleerde tracing). In productie worden ERROR, WARN en INFO behouden, de rest wordt uitgeschakeld.
Timber is een wrapperbibliotheek over Logcat van Jake Wharton voor mobiele applicatielogging op Android. Het voegt automatisch de classtag in, configureert Tree en schakelt logs in productie uit met één regel code.
APM (Application Performance Monitoring) — een klasse tools voor het volgen van prestaties: opstarttijd, netwerkverzoeken, geheugengebruik, crashfrequentie. Bij het monitoren van mobiele applicaties helpen New Relic, Datadog en Firebase Performance knelpunten te vinden voordat gebruikers klagen.
Voor een startup is Firebase Performance voldoende — een gratis tool voor monitoring van mobiele applicaties. New Relic en Datadog worden aangesloten wanneer gedetailleerde tracing en aangepaste dashboards nodig zijn. IT Sectr raadt aan om met Firebase te beginnen en over te stappen op betaalde oplossingen wanneer de DAU boven de 100.000 komt.
Structured logging is een logformaat in JSON of sleutel-waarde in plaats van platte tekst. Het maakt het mogelijk logs te filteren op velden, grafieken te maken en automatisch te analyseren in ELK of Grafana. Zonder gestructureerde logs is het moeilijk patronen te vinden in duizenden records.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.