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
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.
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 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.
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 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.
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_log | iOS | Strukturyzowany | Systemowa | Console.app | Niska |
| CocoaLumberjack | iOS | Tekst/JSON | DDFileLogger | Tak (niestandardowy) | Średnia |
| Timber | Android | Tekst | Logcat/Niestandardowy | Tree | Niska |
| Sentry | iOS/Android | JSON | Serwerowa | Tak | Średnia |
| Logcat | Android | Tekst | Bufor | ADB | Niska |
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 — 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.
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 — 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.
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 — 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 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 — 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 — 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
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ę.
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.
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.
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.
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
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.