Logowanie i monitorowanie w rozwoju mobilnym: istota, narzędzia i jak skonfigurować

Autor: IT Sectr Opublikowano: 2026-05-27 Czas czytania: 8 min

Logowanie i monitorowanie to dwa filary stabilności aplikacji mobilnej. Według Gartner (2025), rynek rozwiązań APM osiągnie 8 miliardów dolarów do 2027 roku. Prawidłowe logowanie pozwala nie tylko znajdować błędy, ale także przewidywać problemy, zanim wpłyną one na użytkowników.

Najważniejsze

  • Na iOS główne narzędzia to os_log (wbudowane logowanie systemowe) i CocoaLumberjack (elastyczna biblioteka z rotacją i formatowaniem). Monitorowanie na iOS pozwala kontrolować wydajność w czasie rzeczywistym.
  • Na Androidzie standardem jest Timber (nakładka na Logcat) i systemowy Log. Timber automatycznie wstawia tag klasy i zarządza poziomami logowania.
  • Structured logging — zapis logów w JSON. Umożliwia automatyczną analizę logów przez ELK, Grafana lub Datadog. Zalecany do produkcji i automatycznego monitorowania.
  • APM (Application Performance Monitoring) — klasa narzędzi do monitorowania aplikacji mobilnych: New Relic, Datadog, Firebase Performance.
  • Rotacja logów i zdalne logowanie są obowiązkowe dla produkcji. Logi nie powinny wypełniać pamięci urządzenia i muszą być dostępne dla programisty zdalnie.

Logowanie i monitorowanie na iOS: os_log i CocoaLumberjack

Logowanie aplikacji mobilnych na iOS opiera się na os_log — wbudowanym systemie Apple, dostępnym od iOS 10. os_log zapisuje logi w jednym dzienniku systemowym (na urządzeniu lub przez Console.app), obsługuje kategorie, poziomy i tagi prywatności. Połączenie logowania i monitorowania na iOS przez Console.app i xcrun umożliwia śledzenie błędów i wydajności w czasie rzeczywistym.

Log Level na iOS

os_log ma poziomy: Default, Info, Debug, Error, Fault. W produkcji pozostawia się Error i Fault — Debug i Info są wyłączane. Wybór odpowiedniego poziomu jest częścią strategii monitorowania aplikacji mobilnych na iOS. Prywatność: %{public}@ dla niezabezpieczonych danych, %{private}@ dla danych osobowych.

CocoaLumberjack

CocoaLumberjack to popularna biblioteka do logowania na iOS. W przeciwieństwie do os_log, obsługuje niestandardowe formaty, zapis asynchroniczny i rotację logów. DDLog, DDTTYLogger (konsola), DDFileLogger (plik z rotacją). Do zdalnego monitorowania CocoaLumberjack można łączyć z os_log — zapisywać do pliku do zdalnego logowania i do os_log dla Console.app.

Logowanie i monitorowanie na Androidzie: Timber i Log Level

Do logowania aplikacji mobilnych na Androidzie używa się Timber — biblioteki Jake'a Whartona, która stała się standardem platformy. Timber to nakładka na Android Log (Logcat), która automatycznie dodaje tag klasy i konfiguruje Tree. Timber jest częścią systemu monitorowania aplikacji mobilnych Android: DebugTree do debugowania, CrashlyticsTree do wysyłania danych.

Timber w szczegółach

Timber używa Tree — komponentu, który decyduje, co zrobić z logiem. W kompilacjach debugowych DebugTree (wyjście do Logcat), w release — CrashlyticsTree (wysyłanie awarii). Timber.wtf() loguje błędy krytyczne. Timber.tag("CustomTag") nadpisuje tag. Do skutecznego monitorowania Timber łączy się z narzędziami APM.

Log Level na Androidzie

Android Log ma poziomy: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 usuwa Log.d i Log.v w release — Timber umożliwia logowanie przez Plant. Wybór poziomu wpływa na jakość monitorowania aplikacji mobilnej — w produkcji pozostawia się WARN i ERROR.

Narzędzie Platforma Format Rotacja Zdalne Złożoność
os_logiOSStrukturyzowanySystemowaConsole.appNiska
CocoaLumberjackiOSTekst/JSONDDFileLoggerTak (niestandardowy)Średnia
TimberAndroidTekstLogcat/NiestandardowyTreeNiska
SentryiOS/AndroidJSONSerwerowaTakŚrednia
LogcatAndroidTekstBuforADBNiska

Wybierając narzędzie do logowania, należy wziąć pod uwagę: czy potrzebne jest zdalne logowanie, jak często zmieniają się logi i kto będzie je analizować. Dla startupów wystarczy os_log lub Timber. Dla przedsiębiorstw — CocoaLumberjack z wysyłaniem na serwer. W IT Sectr używamy połączenia Timber + Crashlytics dla Androida i os_log + CocoaLumberjack dla iOS.

Structured Logging

Structured logging — zapis logów w formacie JSON zamiast zwykłego tekstu. Przykład: zamiast "User login failed" piszemy {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. To podstawa automatycznego monitorowania — stos ELK i Grafana filtrują, agregują i analizują takie dane.

Zalety structured logging

Filtrowanie po polach: znajdź wszystkie logi z event=crash z ostatniej godziny. Agregacja: zbuduj wykres liczby błędów według wersji aplikacji. Integracja z ELK (Elasticsearch, Logstash, Kibana) lub Grafana. Structured logging nie jest obowiązkowy dla pierwszych wydań, ale staje się krytyczny, gdy DAU przekroczy 10 000.

Zdalne logowanie i rotacja logów

Zdalne logowanie — wysyłanie logów z urządzenia na serwer w celu scentralizowanego monitorowania. Implementowane przez niestandardowy Tree (Android) lub żądania HTTP. Wysyłaj tylko Error i Warning — nie marnuj ruchu użytkownika. Rotacja logów: DDFileLogger (iOS) co 1 MB lub 1 dzień. Na Androidzie bufor Logcat jest ograniczony.

APM i monitorowanie aplikacji mobilnych: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — klasa narzędzi do monitorowania aplikacji mobilnych. APM mierzy: czas uruchamiania, żądania sieciowe, FPS, użycie pamięci, częstotliwość awarii. Główni gracze: Sentry (Performance), New Relic Mobile, Datadog Mobile.

Sentry Performance

Sentry — nie tylko raportowanie awarii, ale także monitorowanie wydajności. Sentry Performance tworzy rozproszone ślady, które pokazują, ile czasu zajęła każda faza: od naciśnięcia przycisku do odpowiedzi serwera. Obsługuje iOS, Android, Flutter, React Native. Darmowe do 5k zdarzeń miesięcznie.

New Relic i Datadog

New Relic Mobile dostarcza metryki: liczba sesji, czas w aplikacji, częstotliwość awarii, żądania sieciowe. Datadog Mobile to nowocześniejsze narzędzie z pulpitami nawigacyjnymi w czasie rzeczywistym i alertami. Oba są płatne, ale mają darmowe poziomy. IT Sectr zaleca rozpoczęcie od Firebase Performance i przejście na płatne APM, gdy DAU przekroczy 100 000.

Firebase Performance

Firebase Performance — darmowe narzędzie monitorowania aplikacji mobilnych od Google. Automatycznie zbiera metryki: czas uruchamiania aplikacji, żądania HTTP (URL, metoda, kod odpowiedzi), FPS. Do niestandardowego śledzenia użyj Trace API. Integracja: dodaj SDK do build.gradle (Android) lub Podfile (iOS).

Trace i metryki

Trace — segment czasu z początkiem i końcem, który mierzysz. Przykład: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metryki — wskaźniki liczbowe (rozmiar odpowiedzi, liczba elementów). Firebase Performance nie wymaga infrastruktury serwerowej — wszystkie dane przechodzą przez Firebase SDK. Podczas monitorowania aplikacji mobilnych Trace API zapewnia kontekst do analizy wydajności.

Często zadawane pytania

Jakie poziomy logowania istnieją i kiedy ich używać?

Standardowe poziomy: ERROR (błędy krytyczne), WARN (potencjalne problemy), INFO (kluczowe zdarzenia), DEBUG (debugowanie), VERBOSE (szczegółowe śledzenie). W produkcji pozostawia się ERROR, WARN i INFO, pozostałe wyłącza się.

Czym Timber różni się od Logcat na Androidzie?

Timber to biblioteka-nakładka na Logcat autorstwa Jake'a Whartona do logowania aplikacji mobilnych na Androida. Automatycznie wstawia tag klasy, konfiguruje Tree i wyłącza logi w produkcji jednym wierszem kodu.

Czym jest APM i dlaczego aplikacja mobilna go potrzebuje?

APM (Application Performance Monitoring) — klasa narzędzi do śledzenia wydajności: czasu uruchamiania, żądań sieciowych, użycia pamięci, częstotliwości awarii. Podczas monitorowania aplikacji mobilnych New Relic, Datadog i Firebase Performance pomagają znaleźć wąskie gardła przed skargami użytkowników.

Czy startup powinien korzystać z płatnych rozwiązań APM?

Dla startupu wystarczy Firebase Performance — darmowe narzędzie do monitorowania aplikacji mobilnych. New Relic i Datadog podłącza się, gdy potrzebne jest szczegółowe śledzenie i niestandardowe pulpity. IT Sectr zaleca rozpoczęcie od Firebase i przejście na płatne rozwiązania, gdy DAU przekroczy 100 000.

Czym jest structured logging i czym jest lepszy od zwykłego tekstu?

Structured logging to format logów w JSON lub klucz-wartość zamiast zwykłego tekstu. Pozwala filtrować logi po polach, budować wykresy i automatycznie analizować w ELK lub Grafana. Bez strukturyzowanych logów trudno znaleźć wzorce w tysiącach rekordów.

Podsumowanie

  • os_log — podstawowe narzędzie logowania i monitorowania na iOS. CocoaLumberjack dodaje elastyczność, rotację i zdalne logowanie.
  • Timber — standard logowania aplikacji mobilnych na Androidzie. DebugTree do debugowania, CrashlyticsTree do wydania.
  • Structured logging (JSON) jest niezbędny do automatycznej analizy logów. Integruje się z ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — darmowe narzędzie do monitorowania aplikacji mobilnych dla startupów.
  • Rotacja logów zapobiega przepełnieniu pamięci urządzenia. Skonfiguruj DDFileLogger (iOS) lub użyj bufora Logcat (Android).
  • Zdalne logowanie — wysyłaj tylko logi Error i Warning. Wszystkie logi marnują ruch użytkownika.
  • Trace API i breadcrumbs (Sentry) zapewniają kontekst do monitorowania aplikacji mobilnych, zamieniając logi w historię incydentu.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt