Naplózás és monitorozás a mobil fejlesztésben: lényeg, milyen eszközök és hogyan állítsuk be

Szerző: IT Sectr Megjelenés: 2026-05-27 Olvasási idő: 8 perc

A naplózás és monitorozás a mobilalkalmazás stabilitásának két pillére. A Gartner (2025) szerint az APM-megoldások piaca 2027-re eléri a 8 milliárd dollárt. A megfelelő naplózás nemcsak a hibák megtalálását teszi lehetővé, hanem a problémák előrejelzését is, mielőtt azok a felhasználókat érintenék.

Főbb pontok

  • iOS-en a fő eszközök az os_log (beépített rendszernaplózás) és a CocoaLumberjack (rugalmas könyvtár rotációval és formázással). Az iOS-en történő monitorozás lehetővé teszi a teljesítmény valós idejű ellenőrzését.
  • Androidon a szabvány a Timber (egy wrapper a Logcat körül) és a rendszer Log. A Timber automatikusan beszúrja az osztálycímkét és kezeli a naplózási szinteket.
  • Structured logging — naplók írása JSON formátumban. Lehetővé teszi a naplók automatikus elemzését ELK, Grafana vagy Datadog segítségével. Ajánlott éles üzemhez és automatikus monitorozáshoz.
  • APM (Application Performance Monitoring) — egy eszközosztály a mobilalkalmazások monitorozásához: New Relic, Datadog, Firebase Performance.
  • A naplórotáció és a távoli naplózás kötelező az éles üzemhez. A naplók nem tölthetik meg a készülék memóriáját, és távolról elérhetőnek kell lenniük a fejlesztő számára.

Naplózás és monitorozás iOS-en: os_log és CocoaLumberjack

A mobilalkalmazások naplózása iOS-en az os_log-ra épül — az Apple beépített rendszerére, amely iOS 10 óta elérhető. Az os_log egyetlen rendszernaplóba ír (a készüléken vagy a Console.app-on keresztül), támogatja a kategóriákat, szinteket és adatvédelmi címkéket. A naplózás és monitorozás kombinációja iOS-en a Console.app-on és xcrun-on keresztül lehetővé teszi a hibák és a teljesítmény valós idejű nyomon követését.

Log Level iOS-en

Az os_log szintekkel rendelkezik: Default, Info, Debug, Error, Fault. Éles üzemben az Error és Fault marad — a Debug és Info kikapcsolásra kerül. A megfelelő szint kiválasztása a mobilalkalmazások monitorozási stratégiájának része iOS-en. Adatvédelem: %{public}@ a nem védett adatokhoz, %{private}@ a személyes adatokhoz.

CocoaLumberjack

CocoaLumberjack egy népszerű könyvtár az iOS naplózáshoz. Az os_log-gal ellentétben támogatja az egyéni formátumokat, az aszinkron írást és a naplórotációt. DDLog, DDTTYLogger (konzol), DDFileLogger (fájl rotációval). Távoli monitorozáshoz a CocoaLumberjack kombinálható az os_log-gal — írjon fájlba a távoli naplózáshoz és az os_log-ba a Console.app számára.

Naplózás és monitorozás Androidon: Timber és Log Level

A mobilalkalmazások naplózásához Androidon a Timber-t használják — Jake Wharton könyvtárát, amely a platform szabványává vált. A Timber egy wrapper az Android Log (Logcat) körül, amely automatikusan hozzáadja az osztálycímkét és konfigurálja a Tree-t. A Timber része az Android mobilalkalmazás-monitorozó rendszerének: DebugTree a hibakereséshez, CrashlyticsTree az adatok küldéséhez.

Timber részletesen

A Timber a Tree komponenst használja, amely eldönti, mi történjen a naplóval. Hibakereső build-ekben DebugTree (kimenet a Logcat-be), release-ben — CrashlyticsTree (összeomlások küldése). Timber.wtf() naplózza a végzetes hibákat. Timber.tag("CustomTag") felülírja a címkét. A hatékony monitorozás érdekében a Timber-t APM-eszközökkel kombinálják.

Log Level Androidon

Android Log szintekkel rendelkezik: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. A ProGuard/R8 eltávolítja a Log.d és Log.v elemeket release-ben — a Timber lehetővé teszi a naplózást a Plant-en keresztül. A szintválasztás befolyásolja a mobilalkalmazás-monitorozás minőségét — éles üzemben a WARN és ERROR marad.

Eszköz Platform Formátum Rotáció Távoli Bonyolultság
os_logiOSStrukturáltRendszerConsole.appAlacsony
CocoaLumberjackiOSSzöveg/JSONDDFileLoggerIgen (egyéni)Közepes
TimberAndroidSzövegLogcat/EgyéniTreeAlacsony
SentryiOS/AndroidJSONSzerverIgenKözepes
LogcatAndroidSzövegBufferADBAlacsony

A naplózási eszköz kiválasztásakor vegye figyelembe: szükséges-e távoli naplózás, milyen gyakran változnak a naplók és ki elemzi azokat. Induló vállalkozások számára elegendő az os_log vagy a Timber. Vállalati szinten — CocoaLumberjack szerverre küldéssel. Az IT Sectr-nél a Timber + Crashlytics kombinációt használjuk Androidhoz és az os_log + CocoaLumberjack kombinációt iOS-hez.

Structured Logging

Structured logging — naplók írása JSON formátumban egyszerű szöveg helyett. Példa: a "User login failed" helyett ezt írjuk: {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Ez az automatikus monitorozás alapja — az ELK-verem és a Grafana szűri, összesíti és elemzi az ilyen adatokat.

A structured logging előnyei

Szűrés mezők szerint: keresse meg az összes naplót event=crash értékkel az elmúlt órában. Összesítés: készítsen grafikont a hibák számáról alkalmazásverziók szerint. Integráció az ELK-vel (Elasticsearch, Logstash, Kibana) vagy a Grafana-val. A structured logging nem kötelező az első kiadásokhoz, de kritikussá válik, amikor a DAU meghaladja a 10 000-et.

Távoli naplózás és naplórotáció

Távoli naplózás — naplók küldése a készülékről egy szerverre központosított monitorozás céljából. Egyéni Tree (Android) vagy HTTP-kérések segítségével valósítható meg. Csak Error és Warning értékeket küldjön — ne pazarolja a felhasználó adatforgalmát. Naplórotáció: DDFileLogger (iOS) 1 MB-onként vagy 1 naponta. Androidon a Logcat puffer korlátozott.

APM és mobilalkalmazások monitorozása: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — egy eszközosztály a mobilalkalmazások monitorozásához. Az APM méri: indítási idő, hálózati kérések, FPS, memóriahasználat, összeomlások gyakorisága. Főbb szereplők: Sentry (Performance), New Relic Mobile, Datadog Mobile.

Sentry Performance

Sentry — nem csak összeomlás-jelentés, hanem teljesítményfigyelés is. A Sentry Performance elosztott nyomok (trace) létrehozásával mutatja, mennyi ideig tartott az egyes fázisok: a gombnyomástól a szerver válaszáig. Támogatja az iOS, Android, Flutter, React Native rendszereket. Ingyenes havonta 5 ezer eseményig.

New Relic és Datadog

New Relic Mobile metrikákat ad: munkamenetek száma, alkalmazásban töltött idő, összeomlások gyakorisága, hálózati kérések. Datadog Mobile — egy modernebb eszköz valós idejű irányítópultokkal és riasztásokkal. Mindkettő fizetős, de ingyenes szintekkel rendelkezik. Az IT Sectr javasolja a Firebase Performance-szel való kezdést és a fizetős APM-re való áttérést, amikor a DAU meghaladja a 100 000-et.

Firebase Performance

Firebase Performance — egy ingyenes mobilalkalmazás-monitorozó eszköz a Google-tól. Automatikusan gyűjti a metrikákat: alkalmazás indítási ideje, HTTP-kérések (URL, metódus, válaszkód), FPS. Egyéni nyomkövetéshez használja a Trace API-t. Integráció: adja hozzá az SDK-t a build.gradle (Android) vagy Podfile (iOS) fájlhoz.

Trace és metrikák

Trace — egy időszegmens kezdéssel és véggel, amelyet megmér. Példa: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metrikák — numerikus mutatók (válasz mérete, elemek száma). A Firebase Performance nem igényel szerverinfrastruktúrát — minden adat a Firebase SDK-n keresztül halad. Mobilalkalmazások monitorozásakor a Trace API kontextust biztosít a teljesítményelemzéshez.

Gyakran Ismételt Kérdések

Milyen naplózási szintek léteznek és mikor használjuk őket?

Szabványos szintek: ERROR (kritikus hibák), WARN (potenciális problémák), INFO (kulcsfontosságú események), DEBUG (hibakeresés), VERBOSE (részletes nyomkövetés). Éles üzemben az ERROR, WARN és INFO marad, a többi kikapcsolásra kerül.

Miben különbözik a Timber a Logcat-tól Androidon?

Timber egy wrapper könyvtár a Logcat körül Jake Whartontól a mobilalkalmazások naplózásához Androidon. Automatikusan beszúrja az osztálycímkét, konfigurálja a Tree-t, és egyetlen kódsorral kikapcsolja a naplókat éles üzemben.

Mi az APM és miért van szüksége rá egy mobilalkalmazásnak?

APM (Application Performance Monitoring) — egy eszközosztály a teljesítmény nyomon követésére: indítási idő, hálózati kérések, memóriahasználat, összeomlások gyakorisága. Mobilalkalmazások monitorozásakor a New Relic, a Datadog és a Firebase Performance segít megtalálni a szűk keresztmetszeteket a felhasználói panaszok előtt.

Használjon-e egy startup fizetős APM-megoldásokat?

Egy startup számára elegendő a Firebase Performance — egy ingyenes mobilalkalmazás-monitorozó eszköz. A New Relic és a Datadog akkor csatlakozik, amikor részletes nyomkövetésre és egyéni irányítópultokra van szükség. Az IT Sectr javasolja a Firebase-szel való kezdést és a fizetős megoldásokra való áttérést, amikor a DAU meghaladja a 100 000-et.

Mi a structured logging és miben jobb, mint az egyszerű szöveg?

A structured logging egy naplóformátum JSON-ban vagy kulcs-érték párban az egyszerű szöveg helyett. Lehetővé teszi a naplók mezők szerinti szűrését, grafikonok készítését és automatikus elemzést az ELK-ben vagy a Grafana-ban. Strukturált naplók nélkül nehéz mintákat találni több ezer rekordban.

Összefoglalás

  • os_log — az alapvető naplózási és monitorozási eszköz iOS-en. A CocoaLumberjack rugalmasságot, rotációt és távoli naplózást ad hozzá.
  • Timber — a mobilalkalmazások naplózásának szabványa Androidon. DebugTree hibakereséshez, CrashlyticsTree kiadáshoz.
  • A structured logging (JSON) szükséges az automatikus naplóelemzéshez. Integrálódik az ELK, Grafana, Datadog rendszerekkel.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — ingyenes mobilalkalmazás-monitorozó eszköz startupok számára.
  • A naplórotáció megakadályozza a készülék memóriájának túlcsordulását. Konfigurálja a DDFileLogger-t (iOS) vagy használja a Logcat puffert (Android).
  • Távoli naplózás — csak Error és Warning naplókat küldjön. Minden napló felhasználói adatforgalmat fogyaszt.
  • Trace API és breadcrumbs (Sentry) kontextust biztosít a mobilalkalmazások monitorozásához, a naplókat incidenssztorivá alakítva.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése