Mobil geliştirmede günlük kaydı ve izleme: özü, hangi araçlar ve nasıl yapılandırılacağı

Yazar: IT Sectr Yayınlanma: 2026-05-27 Okuma süresi: 8 dk

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 ana araçlar os_log (yerleşik sistem günlük kaydı) ve CocoaLumberjack'dir (döndürme ve biçimlendirme ile esnek kütüphane). iOS'ta izleme, gerçek zamanlı olarak performansı kontrol etmeyi sağlar.
  • Android'de standart Timber'dır (Logcat üzerinde bir sarmalayıcı) ve sistem Log'udur. Timber otomatik olarak sınıf etiketini ekler ve günlük kaydı seviyelerini yönetir.
  • Yapılandırılmış günlük kaydı — JSON formatında günlük yazma. ELK, Grafana veya Datadog aracılığıyla otomatik olarak günlükleri analiz etmeyi sağlar. Üretim ve otomatik izleme için önerilir.
  • APM (Application Performance Monitoring) — mobil uygulama izleme için bir araç sınıfı: New Relic, Datadog, Firebase Performance.
  • Günlük döndürme ve uzaktan günlük kaydı üretim için zorunludur. Günlükler cihaz hafızasını doldurmamalı ve geliştiriciye uzaktan erişilebilir olmalıdır.

iOS'ta Günlük Kaydı ve İzleme: os_log ve CocoaLumberjack

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.

iOS'ta Log Level

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

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 Günlük Kaydı ve İzleme: Timber ve Log Level

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 Detaylı

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'de Log Level

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_logiOSYapılandırılmışSistemConsole.appDüşük
CocoaLumberjackiOSMetin/JSONDDFileLoggerEvet (özel)Orta
TimberAndroidMetinLogcat/ÖzelTreeDüşük
SentryiOS/AndroidJSONSunucuEvetOrta
LogcatAndroidMetinTamponADBDüşü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ı

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.

Yapılandırılmış günlük kaydının avantajları

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ı ve Günlük Döndürme

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.

APM ve Mobil Uygulama İzleme: Sentry, New Relic, Datadog

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 Performance

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 ve Datadog

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

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 ve Metrikler

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

Hangi günlük kaydı seviyeleri vardır ve ne zaman kullanılmalıdır?

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.

Android'de Timber, Logcat'ten nasıl farklıdı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 nedir ve mobil uygulamanın neden buna ihtiyacı vardı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 ücretli APM çözümleri kullanmalı mı?

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ı nedir ve düz metinden nasıl daha iyidir?

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

  • os_log — iOS'ta temel günlük kaydı ve izleme aracı. CocoaLumberjack esneklik, döndürme ve uzaktan günlük kaydı ekler.
  • Timber — Android'de mobil uygulama günlük kaydı standardı. Hata ayıklama için DebugTree, sürüm için CrashlyticsTree.
  • Yapılandırılmış günlük kaydı (JSON) otomatik günlük analizi için gereklidir. ELK, Grafana, Datadog ile entegre olur.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — startup'lar için ücretsiz mobil uygulama izleme aracı.
  • Günlük döndürme, cihaz hafızasının taşmasını önler. DDFileLogger'ı (iOS) yapılandırın veya Logcat tamponunu (Android) kullanın.
  • Uzaktan günlük kaydı — yalnızca Error ve Warning günlüklerini gönderin. Tüm günlükler kullanıcı trafiğini tüketir.
  • Trace API ve breadcrumbs (Sentry), mobil uygulama izleme için bağlam sağlayarak günlükleri bir olay hikayesine dönüştürür.

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.

Projeyi tartış