Android günlüklerini (logcat, ANR, dökümler) nerede bulacağınız ve nasıl kaydedeceğiniz
Kısa cevap: Root erişimi olmadan ADB kullanın — günlükleri kaydetmek için adb logcat ve adb bugreport (veya adb logcat > dosya) komutlarını kullanın; root erişimi ile /data, /data/anr, /sys/fs/pstore ve /proc/kmsg dizinlerini kopyalayabilirsiniz. Aşağıda hızlı teşhis için adım adım komutlar ve ipuçları yer almaktadır.
Hızlı yöntem: Root olmadan günlükleri çıkarma (ADB üzerinden)
- Hazırlık:
- "Geliştirici seçenekleri"ni ve "USB hata ayıklama"sını etkinleştirin.
- Bilgisayarınıza platform-tools (ADB) yükleyin.
- Bağlantıyı kontrol etme:
adb devices
- Mevcut günlükleri bir dosyaya kaydetme:
adb logcat -d -v time > logs.txt(-d bayrağı arabelleği boşaltır ve yazmayı sonlandırır)
- Akış günlüklerini kaydetme:
adb logcat -v time > live_logs.txtDurdurmak için Ctrl+C tuşlarına basın.
- Seviye/etiket/uygulamaya göre filtreleme:
- Tüm hatalar:
adb logcat *:E -v time > errors.txt - Etikete göre:
adb logcat MyTag:V *:S > tag_logs.txt - PID'e göre (Linux/macOS'ta):
adb logcat --pid=$(adb shell pidof com.example.app) > app.txt - Bilgisayarda ek olarak grep kullanabilirsiniz:
adb logcat | grep "com.example.app" > app.txt
- Tüm hatalar:
- Tam rapor (bugreport):
adb bugreport bugreport.zipArşivde günlükler, dumpsys, tracestate bulunur — geliştiriciye göndermek için uygundur.
Yalnızca arabellek anlık görüntüsüne ihtiyacınız varsa adb logcat -d kullanın; uzun süreli kayıt için akışı kullanın (boyutu kontrol etmeyi unutmayın).
Root'lu cihazda günlükleri çıkarma
Root erişimi, normal ADB üzerinden erişilemeyen dosyalara erişim sağlar:
- Çökme dökümleri ve ANR:
/data/anr/,/data/tombstones/ - Sistem dökümleri:
/sys/fs/pstore/,/proc/kmsg,/d/(firmware'a bağlıdır) Komutlar: adb rootadb pull /data/anr/traces.txt ./traces.txtadb pull /sys/fs/pstore/ ./pstore_dumpKolaylık sağlayan mobil uygulamalar: MatLog, CatLog (F‑Droid) — root ile daha hızlı çalışır ve ZIP/TXT olarak dışa aktarabilir.
Sistem dosyalarını kopyalamak ve SELinux politikalarını değiştirmek tehlikelidir. Sonuçlarını anlamadan /system ve /data içindeki izinleri ve içeriği değiştirmeyin.
Günlükleri kaydetme, filtreleme ve temel analiz
- Biçimlendirme: Kesin zaman damgaları için
-v timekullanın. - Eski günlükleri silme:
adb logcat -c - Otomasyon (Linux/macOS):
adb logcat -c; adb logcat -d > $(date +%Y%m%d)_logs.txt
- Dosyada arama: "FATAL EXCEPTION", "ANR", "Exception" ve uygulamanızın PID'ini arayın.
- Araçlar: Günlükleri VS Code/Notepad++ ile açın — satır vurgulama ve filtreleri etkinleştirin.
- Geliştiriciye göndermeden önce: Yalnızca gerekli bölümleri bırakın ve kişisel verileri (telefon numaraları, token'lar) silin.
Uzun vadeli teşhis için derlemeye stacktrace, bugreport ve uygulama yapılandırma dosyasını ekleyin (ek bağlamlar gerekiyorsa).
Sık yapılan hatalar
- Cihaz
adb deviceslistesinde görünmüyor — USB hata ayıklamayı etkinleştirin ve telefonda RSA anahtarını onaylayın. - Günlükler çok büyük — etiket/seviye/pid'e göre filtreler uygulayın ve dosyaları döndürün.
- Gerekli dosyalara (örneğin
/data/anr) erişilemiyor — root olmadan bunlara erişilemez; kullanıcıdan bugreport isteyin. - Logcat eski kayıtları hızla üzerine yazar — uzun testten önce arabelleği temizleyin ve dosyaya yazmaya başlayın.
SSS
- Telefondan bilgisayar olmadan günlükler nasıl alınır?
Root olmayan cihazda logcat yakalama uygulaması yüklenebilir (bazıları izin veya root gerektirir). Daha güvenilir yol — OTG+klavye/bilgisayar üzerinden ADB'ye bağlanmaktır. - Hangisi daha önemli: logcat mi yoksa bugreport mu?
Logcat — hızlı hata akışı; bugreport — ek verilerle (dumpsys, izlemeler) kapsamlı arşiv. Ciddi hatalar için bugreport talep edin. - Zamana göre filtreleme yapılabilir mi?
Logcat'te doğrudan zaman filtresi yoktur, bu nedenle zaman damgalı dosya kaydedin (-v time) ve düzenleyicide zaman damgalarına göre arama yapın.
Gerekirse, Windows için komut seti veya günlüklerin otomatik toplanması ve arşive yüklenmesi için bir betik hazırlayabilirim.