Günlük kaydı ve izleme, mobil uygulama kararlılığının iki temel direğidir. Gartner (2025)'a göre, APM çözümleri pazarı 2027'ye kadar 8 milyar dolara ulaşacak. Doğru günlük kaydı, yalnızca hataları bulmayı değil, aynı zamanda kullanıcıları etkilemeden önce sorunları tahmin etmeyi sağlar.
Önemli Noktalar
iOS'ta mobil uygulama günlük kaydı, Apple'ın yerleşik sistemi olan os_log (iOS 10'dan beri mevcut) üzerine inşa edilmiştir. os_log, tek bir sistem günlüğüne (cihazda veya Console.app aracılığıyla) günlük yazar, kategorileri, seviyeleri ve gizlilik etiketlerini destekler. Console.app ve xcrun aracılığıyla iOS'ta günlük kaydı ve izlemenin kombinasyonu, gerçek zamanlı olarak hataları ve performansı izlemeyi sağlar.
os_log'un seviyeleri vardır: Default, Info, Debug, Error, Fault. Üretimde Error ve Fault tutulur — Debug ve Info devre dışı bırakılır. Doğru seviyeyi seçmek, iOS'ta mobil uygulama izleme stratejisinin bir parçasıdır. Gizlilik: korunmayan veriler için %{public}@, kişisel veriler için %{private}@.
CocoaLumberjack, iOS günlük kaydı için popüler bir kütüphanedir. os_log'un aksine, özel biçimleri, eşzamansız yazmayı ve günlük döndürmeyi destekler. DDLog, DDTTYLogger (konsol), DDFileLogger (döndürmeli dosya). Uzaktan izleme için CocoaLumberjack, os_log ile birleştirilebilir — uzaktan günlük kaydı için bir dosyaya ve Console.app için os_log'a yazın.
Android'de mobil uygulama günlük kaydı için Timber kullanılır — Jake Wharton tarafından yazılan ve platformun standardı haline gelen bir kütüphane. Timber, Android Log (Logcat) üzerinde otomatik olarak sınıf etiketi ekleyen ve Tree'yi yapılandıran bir sarmalayıcıdır. Timber, Android mobil uygulama izleme sisteminin bir parçasıdır: hata ayıklama için DebugTree, veri gönderme için CrashlyticsTree.
Timber, Tree kullanır — günlükle ne yapılacağına karar veren bir bileşen. Hata ayıklama yapılarında DebugTree (Logcat'e çıktı), sürümde — CrashlyticsTree (çökmeleri gönderme). Timber.wtf() ölümcül hataları günlüğe kaydeder. Timber.tag("CustomTag") etiketi geçersiz kılar. Etkili izleme için Timber, APM araçlarıyla birleştirilir.
Android Log seviyelere sahiptir: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8, sürümde Log.d ve Log.v'yi kaldırır — Timber, Plant aracılığıyla günlük kaydına izin verir. Seviye seçimi, mobil uygulama izleme kalitesini etkiler — üretimde WARN ve ERROR tutulur.
| Araç | Platform | Biçim | Döndürme | Uzaktan | Karmaşıklık |
|---|---|---|---|---|---|
| os_log | iOS | Yapılandırılmış | Sistem | Console.app | Düşük |
| CocoaLumberjack | iOS | Metin/JSON | DDFileLogger | Evet (özel) | Orta |
| Timber | Android | Metin | Logcat/Özel | Tree | Düşük |
| Sentry | iOS/Android | JSON | Sunucu | Evet | Orta |
| Logcat | Android | Metin | Tampon | ADB | Düşük |
Günlük kaydı aracı seçerken şunları göz önünde bulundurun: uzaktan günlük kaydına ihtiyacınız var mı, günlükler ne sıklıkta değişiyor ve bunları kim analiz edecek. Startup'lar için os_log veya Timber yeterlidir. Kurumsal için — sunucuya gönderme ile CocoaLumberjack. IT Sectr'de Android için Timber + Crashlytics ve iOS için os_log + CocoaLumberjack kombinasyonunu kullanıyoruz.
Yapılandırılmış günlük kaydı — düz metin yerine JSON formatında günlük yazma. Örnek: "User login failed" yerine {"event": "login_failed", "user_id": 123, "reason": "invalid_password"} yazıyoruz. Bu, otomatik izlemenin temelidir — ELK yığını ve Grafana bu tür verileri filtreler, toplar ve analiz eder.
Alanlara göre filtreleme: son bir saat içinde event=crash olan tüm günlükleri bulun. Toplama: uygulama sürümüne göre hata sayısının grafiğini oluşturun. ELK (Elasticsearch, Logstash, Kibana) veya Grafana ile entegrasyon. İlk sürümler için yapılandırılmış günlük kaydı zorunlu değildir, ancak DAU 10.000'i aştığında kritik hale gelir.
Uzaktan günlük kaydı — merkezi izleme için cihazdan sunucuya günlük gönderme. Özel Tree (Android) veya HTTP istekleri aracılığıyla uygulanır. Yalnızca Error ve Warning gönderin — kullanıcının trafiğini boşa harcamayın. Günlük döndürme: DDFileLogger (iOS) her 1 MB veya 1 günde bir. Android'de Logcat tamponu sınırlıdır.
Application Performance Monitoring (APM) — mobil uygulama izleme için bir araç sınıfı. APM şunları ölçer: başlatma süresi, ağ istekleri, FPS, bellek kullanımı, çökme sıklığı. Ana oyuncular: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — yalnızca çökme raporlaması değil, aynı zamanda performans izlemesi. Sentry Performance, dağıtılmış izlemeler oluşturur ve her aşamanın ne kadar sürdüğünü gösterir: düğmeye basmadan sunucu yanıtına kadar. iOS, Android, Flutter, React Native'i destekler. Ayda 5 bine kadar olay ücretsiz.
New Relic Mobile metrikler sağlar: oturum sayısı, uygulamada geçirilen süre, çökme sıklığı, ağ istekleri. Datadog Mobile — gerçek zamanlı panolar ve uyarılarla daha modern bir araç. Her ikisi de ücretlidir ancak ücretsiz katmanları vardır. IT Sectr, Firebase Performance ile başlamayı ve DAU 100.000'i aştığında ücretli APM'ye geçmeyi önerir.
Firebase Performance — Google'dan ücretsiz bir mobil uygulama izleme aracı. Otomatik olarak metrikler toplar: uygulama başlatma süresi, HTTP istekleri (URL, yöntem, yanıt kodu), FPS. Özel izleme için Trace API'yi kullanın. Entegrasyon: build.gradle (Android) veya Podfile (iOS)'a SDK'yı ekleyin.
Trace — başlangıcı ve sonu olan, ölçtüğünüz bir zaman dilimi. Örnek: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Metrikler — sayısal göstergeler (yanıt boyutu, öğe sayısı). Firebase Performance, sunucu altyapısı gerektirmez — tüm veriler Firebase SDK aracılığıyla gider. Mobil uygulamaları izlerken Trace API, performans analizi için bağlam sağlar.
Sıkça Sorulan Sorular
Standart seviyeler: ERROR (kritik hatalar), WARN (potansiyel sorunlar), INFO (önemli olaylar), DEBUG (hata ayıklama), VERBOSE (ayrıntılı izleme). Üretimde ERROR, WARN ve INFO tutulur, diğerleri devre dışı bırakılır.
Timber, Android'de mobil uygulama günlük kaydı için Jake Wharton tarafından Logcat üzerinde bir sarmalayıcı kütüphanedir. Otomatik olarak sınıf etiketini ekler, Tree'yi yapılandırır ve tek satır kodla üretimde günlükleri devre dışı bırakır.
APM (Application Performance Monitoring) — performansı izlemek için bir araç sınıfı: başlatma süresi, ağ istekleri, bellek kullanımı, çökme sıklığı. Mobil uygulamaları izlerken New Relic, Datadog ve Firebase Performance, kullanıcı şikayetlerinden önce darboğazları bulmaya yardımcı olur.
Bir startup için Firebase Performance yeterlidir — ücretsiz bir mobil uygulama izleme aracı. New Relic ve Datadog, ayrıntılı izleme ve özel panolar gerektiğinde bağlanır. IT Sectr, Firebase ile başlamayı ve DAU 100.000'i aştığında ücretli çözümlere geçmeyi önerir.
Yapılandırılmış günlük kaydı, düz metin yerine JSON veya anahtar-değer formatında günlük biçimidir. Günlükleri alanlara göre filtrelemeye, grafikler oluşturmaya ve ELK veya Grafana'da otomatik olarak analiz etmeye olanak tanır. Yapılandırılmış günlükler olmadan, binlerce kayıtta desen bulmak zordur.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.