Pencatatan dan pemantauan adalah dua pilar stabilitas aplikasi seluler. Menurut Gartner (2025), pasar solusi APM akan mencapai $8 miliar pada tahun 2027. Pencatatan yang tepat memungkinkan tidak hanya menemukan bug, tetapi juga memprediksi masalah sebelum mempengaruhi pengguna.
Poin Utama
Pencatatan aplikasi seluler di iOS dibangun di atas os_log — sistem bawaan Apple, tersedia sejak iOS 10. os_log menulis log ke satu log sistem (di perangkat atau melalui Console.app), mendukung kategori, tingkat, dan tag privasi. Kombinasi pencatatan dan pemantauan di iOS melalui Console.app dan xcrun memungkinkan pelacakan kesalahan dan kinerja secara real-time.
os_log memiliki tingkat: Default, Info, Debug, Error, Fault. Dalam produksi, Error dan Fault dipertahankan — Debug dan Info dinonaktifkan. Memilih tingkat yang tepat adalah bagian dari strategi pemantauan aplikasi seluler di iOS. Privasi: %{public}@ untuk data yang tidak dilindungi, %{private}@ untuk data pribadi.
CocoaLumberjack adalah pustaka populer untuk pencatatan iOS. Tidak seperti os_log, ia mendukung format kustom, penulisan asinkron, dan rotasi log. DDLog, DDTTYLogger (konsol), DDFileLogger (file dengan rotasi). Untuk pemantauan jarak jauh, CocoaLumberjack dapat dikombinasikan dengan os_log — menulis ke file untuk pencatatan jarak jauh dan ke os_log untuk Console.app.
Untuk pencatatan aplikasi seluler di Android, digunakan Timber — pustaka oleh Jake Wharton yang telah menjadi standar platform. Timber adalah pembungkus di atas Android Log (Logcat) yang secara otomatis menambahkan tag kelas dan mengonfigurasi Tree. Timber adalah bagian dari sistem pemantauan aplikasi seluler Android: DebugTree untuk debugging, CrashlyticsTree untuk mengirim data.
Timber menggunakan Tree — komponen yang memutuskan apa yang harus dilakukan dengan log. Dalam build debug, DebugTree (output ke Logcat), dalam rilis — CrashlyticsTree (mengirim crash). Timber.wtf() mencatat kesalahan fatal. Timber.tag("CustomTag") mengganti tag. Untuk pemantauan yang efektif, Timber dikombinasikan dengan alat APM.
Android Log memiliki tingkat: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 menghapus Log.d dan Log.v dalam rilis — Timber memungkinkan pencatatan melalui Plant. Pemilihan tingkat mempengaruhi kualitas pemantauan aplikasi seluler — dalam produksi, WARN dan ERROR dipertahankan.
| Alat | Platform | Format | Rotasi | Jarak Jauh | Kompleksitas |
|---|---|---|---|---|---|
| os_log | iOS | Terstruktur | Sistem | Console.app | Rendah |
| CocoaLumberjack | iOS | Teks/JSON | DDFileLogger | Ya (kustom) | Sedang |
| Timber | Android | Teks | Logcat/Kustom | Tree | Rendah |
| Sentry | iOS/Android | JSON | Server | Ya | Sedang |
| Logcat | Android | Teks | Buffer | ADB | Rendah |
Saat memilih alat pencatatan, pertimbangkan: apakah Anda memerlukan pencatatan jarak jauh, seberapa sering log berubah, dan siapa yang akan menganalisisnya. Untuk startup, os_log atau Timber sudah cukup. Untuk perusahaan — CocoaLumberjack dengan pengiriman ke server. Di IT Sectr, kami menggunakan kombinasi Timber + Crashlytics untuk Android dan os_log + CocoaLumberjack untuk iOS.
Pencatatan terstruktur — menulis log dalam format JSON, bukan teks biasa. Contoh: alih-alih "User login failed" kami menulis {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Ini adalah dasar untuk pemantauan otomatis — tumpukan ELK dan Grafana menyaring, mengumpulkan, dan menganalisis data tersebut.
Penyaringan berdasarkan bidang: temukan semua log dengan event=crash dalam satu jam terakhir. Agregasi: buat grafik jumlah kesalahan berdasarkan versi aplikasi. Integrasi dengan ELK (Elasticsearch, Logstash, Kibana) atau Grafana. Pencatatan terstruktur tidak wajib untuk rilis pertama, tetapi menjadi penting ketika DAU melebihi 10.000.
Pencatatan jarak jauh — mengirim log dari perangkat ke server untuk pemantauan terpusat. Diimplementasikan melalui Tree kustom (Android) atau permintaan HTTP. Kirim hanya Error dan Warning — jangan buang lalu lintas pengguna. Rotasi log: DDFileLogger (iOS) setiap 1 MB atau 1 hari. Di Android, buffer Logcat terbatas.
Application Performance Monitoring (APM) — kelas alat untuk pemantauan aplikasi seluler. APM mengukur: waktu mulai, permintaan jaringan, FPS, penggunaan memori, frekuensi crash. Pemain utama: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — tidak hanya pelaporan crash, tetapi juga pemantauan kinerja. Sentry Performance membuat jejak terdistribusi yang menunjukkan berapa lama setiap tahap berlangsung: dari menekan tombol hingga respons server. Mendukung iOS, Android, Flutter, React Native. Gratis hingga 5k peristiwa per bulan.
New Relic Mobile memberikan metrik: jumlah sesi, waktu di aplikasi, frekuensi crash, permintaan jaringan. Datadog Mobile adalah alat yang lebih modern dengan dasbor real-time dan peringatan. Keduanya berbayar, tetapi memiliki tingkat gratis. IT Sectr merekomendasikan memulai dengan Firebase Performance dan beralih ke APM berbayar ketika DAU melebihi 100.000.
Firebase Performance — alat pemantauan aplikasi seluler gratis dari Google. Secara otomatis mengumpulkan metrik: waktu mulai aplikasi, permintaan HTTP (URL, metode, kode respons), FPS. Untuk pelacakan kustom, gunakan Trace API. Integrasi: tambahkan SDK ke build.gradle (Android) atau Podfile (iOS).
Trace — segmen waktu dengan awal dan akhir yang Anda ukur. Contoh: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metrik — indikator numerik (ukuran respons, jumlah item). Firebase Performance tidak memerlukan infrastruktur server — semua data melalui Firebase SDK. Saat memantau aplikasi seluler, Trace API memberikan konteks untuk analisis kinerja.
Pertanyaan yang Sering Diajukan
Tingkat standar: ERROR (kesalahan kritis), WARN (masalah potensial), INFO (peristiwa utama), DEBUG (debugging), VERBOSE (pelacakan terperinci). Dalam produksi, ERROR, WARN, dan INFO dipertahankan, sisanya dinonaktifkan.
Timber adalah pustaka pembungkus di atas Logcat oleh Jake Wharton untuk pencatatan aplikasi seluler di Android. Secara otomatis menyisipkan tag kelas, mengonfigurasi Tree, dan menonaktifkan log dalam produksi dengan satu baris kode.
APM (Application Performance Monitoring) — kelas alat untuk melacak kinerja: waktu mulai, permintaan jaringan, penggunaan memori, frekuensi crash. Saat memantau aplikasi seluler, New Relic, Datadog, dan Firebase Performance membantu menemukan kemacetan sebelum keluhan pengguna.
Untuk startup, Firebase Performance sudah cukup — alat pemantauan aplikasi seluler gratis. New Relic dan Datadog dihubungkan ketika pelacakan terperinci dan dasbor kustom diperlukan. IT Sectr merekomendasikan memulai dengan Firebase dan beralih ke solusi berbayar ketika DAU melebihi 100.000.
Pencatatan terstruktur adalah format log dalam JSON atau kunci-nilai alih-alih teks biasa. Ini memungkinkan penyaringan log berdasarkan bidang, membuat grafik, dan menganalisis secara otomatis di ELK atau Grafana. Tanpa log terstruktur, sulit menemukan pola dalam ribuan catatan.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.