Günlükleri Logcat ile görüntüleme

Android Studio'daki Logcat penceresi, cihazınızdan alınan günlükleri gerçek zamanlı olarak görüntüleyerek uygulamanızdaki hataları ayıklamanıza yardımcı olur. Örneğin, Log sınıfıyla uygulamanıza eklediğiniz mesajlar, Android'de çalışan hizmetlerden gelen mesajlar veya çöp toplama işlemi gibi sistem mesajları. Bir uygulama istisna oluşturduğunda, Logcat bir mesaj ve ardından kod satırına bağlantılar içeren ilişkili yığın izlemenin gösterilmesini sağlar.

Logcat penceresini kullanmaya başlama

Uygulamanızın günlük mesajlarını görüntülemek için aşağıdakileri yapın.

  1. Android Studio'da, fiziksel bir cihaz veya emülatörde uygulamanızı oluşturup çalıştırın.
  2. Menü çubuğundan Görünüm > Araç Pencereleri > Logcat'i seçin.

Logcat, varsayılan olarak en sona kaydırır. Logcat görünümünü tıklayarak veya fare tekerleğinizi kullanarak yukarı doğru kaydırarak bu özelliği devre dışı bırakabilirsiniz. Tekrar açmak için, araç çubuğundan Sayfanın Sonuna KaydırEkranı kaydırarak Bitiş simgesine gidin. tıklayın. Araç çubuğunu Logcat'i temizlemek, duraklatmak veya yeniden başlatmak için de kullanabilirsiniz.

Logcat pencere kullanıcı arayüzü

Şekil 1. Logcat'i, etiketler ve mesajlar gibi faydalı bilgilerin taranmasını ve uyarılar ve hatalar gibi farklı günlük türlerini tanımlamayı kolaylaştırmak için biçimlendirir.

Günlükleri okuma

Her günlüğün bir tarih, zaman damgası, işlem ve iş parçacığı kimliği, etiketi, paket adı, önceliği ve mesajı vardır. Günlük türü tanımlamaya yardımcı olan farklı etiketler benzersiz bir renge sahiptir. Her günlük girişinin önceliği FATAL, ERROR, WARNING, INFO, DEBUG veya VERBOSE şeklindedir.

Örneğin, aşağıdaki günlük mesajı DEBUG önceliğine ve ProfileInstaller etiketine sahiptir:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

Günlük görünümünü yapılandırma

Standart günlük görünümü, her günlüğün tarihi, saat işlemi ve iş parçacığı kimliğini, etiketini, paket adını, önceliğini ve bunlarla ilişkili mesajı gösterir. Varsayılan olarak, mesaj satırları günlük görünümünde sarmalanmaz ancak Logcat araç çubuğundan Soft Sarma Yumuşak Sarma simgesi seçeneğini kullanabilirsiniz.

Logcat araç çubuğundan Logcat Biçimlendirme Seçeneklerini Yapılandır tıklayarak daha az varsayılan görüntüleme bilgisinin bulunduğu Compact görünümüne geçebilirsiniz.

Ne kadar bilginin görüntülenmesini istediğinizi daha fazla yapılandırmak için Görünümleri Değiştir'i seçin ve zaman damgası, etiket, işlem kimliği veya paket adlarının gösterilmesini isteyip istemediğinizi belirtin.

Renk şemasını değiştirme

Renk şemasını değiştirmek için Android Studio > Ayarlar > Düzenleyici > Renk Şeması'na gidin. Günlük görünümünüzün renk şemasını değiştirmek için Android Logcat'i seçin. Filtrenizin renk şemasını değiştirmek için Logcat Filtresi'ni seçin.

Ek yapılandırma seçenekleri

Ek yapılandırma seçenekleri için Android Studio > Ayarlar > Araçlar > Logcat'e gidin. Buradan, Logcat döngü arabelleği boyutunu, yeni Logcat pencereleri için varsayılan filtreyi ve otomatik tamamlamaya geçmişten filtre eklemek isteyip istemediğinizi seçebilirsiniz.

Logcat'i birden çok pencerede kullanma

Sekmeler, farklı cihazlar veya sorgular arasında kolayca geçiş yapmanıza yardımcı olur. Yeni Sekme'yi Yeni Sekme simgesi tıklayarak birden fazla Logcat sekmesi oluşturabilirsiniz. Bir sekmeyi sağ tıklayarak yeniden adlandırabilir ve yeniden düzenleyebilirsiniz.

Ayrıca, iki günlük grubu arasında daha kolay karşılaştırma yapmak için görünümü bir sekme içinde bölebilirsiniz. Bölme oluşturmak için günlük görünümünde sağ tıklayın veya araç çubuğundan Panelleri Böl seçeneğini tıklayıp Sağdan Böl ya da Böl'ü seçin. Bölmeyi kapatmak için sağ tıklayıp Kapat'ı seçin. Her bölme, kendi cihaz bağlantısını, görüntüleme seçeneklerini ve sorguyu ayarlamanıza olanak tanır.

Birden fazla Logcat penceresi Şekil 2. Android Studio'da Logcat pencerelerini bölme.

Logcat araç çubuğundan günlüklerin sonuna gidebilir veya belirli bir satırı tıklayarak bu satırın görünür kalmasını sağlayabilirsiniz.

Android Studio'da, doğrudan ana sorgu alanından anahtar/değer aramaları oluşturabilirsiniz. Bu sorgu sistemi, sorgulamak istediğiniz verilerin doğruluğunu sağlar ve anahtar/değer çiftlerine göre günlükleri hariç tutar. Normal ifadeleri kullanma seçeneğiniz olsa da sorgular için bu ifadeleri kullanmanız gerekmez. Önerileri görmek için sorgu alanında Ctrl + Space tuşlarına basın.

Sorgu alanındaki önerilerin listesi Şekil 3. Önerilen sorguların listesini görmek için sorgu alanında Ctrl + Space tuşlarına basın.

Aşağıda, sorgunuzda kullanabileceğiniz anahtarlara bazı örnekler verilmiştir:

  • tag: Günlük girişinin tag alanıyla eşleşir.
  • package: Günlük kaydı uygulamasının paket adıyla eşleşir.
  • process: Günlük kaydı uygulamasının işlem adıyla eşleşir.
  • message: Günlük girişinin mesaj bölümüyle eşleşme sağlar.
  • level: Belirtilen veya daha yüksek düzeydeki günlük düzeyiyle eşleşir (örneğin, DEBUG).
  • age: Giriş zaman damgası yeniyse eşleşir. Değerler, bir sayı ve ardından zaman birimini belirten bir harfle belirtilir: saniye için s, dakika için m, saat için h ve gün için d. Örneğin, age: 5m yalnızca son 5 dakika içinde günlüğe kaydedilmiş mesajları filtreler.

Olumsuzluk ve normal ifadeler

Şu alanlar olumsuzlama ve normal ifade eşleşmesini destekler: tag, package, message ve line.

Olumsuzluk, alan adının başına - eklenerek ifade edilir. Örneğin -tag:MyTag, tag değeri MyTag dizesini içermeyen günlük girişlerini eşleştirir.

Normal ifade eşleşmesi, alan adına ~ eklenerek ifade edilir. Örneğin, tag~:My.*Tag.

Olumsuzlama ve normal ifade değiştiricileri birleştirilebilir. Örneğin, -tag~:My.*Tag.

Mantıksal operatörler ve parantezler

Sorgu dili, & ile | ve parantezlerle ifade edilen AND ile OR operatörlerini destekler. Örneğin:

(tag:foo | level:ERROR) & package:mine

Normal operatör önceliğinin uygulandığını ve dolayısıyla aşağıdakilerin geçerli olduğunu unutmayın:

tag:foo | level:ERROR & package:mine

Şu şekilde değerlendirilir:

tag:foo | (level:ERROR & package:mine)

Örtük mantıksal operatörler

Mantıksal operatörler uygulanmazsa sorgu dili, OR ile aynı anahtara sahip birden çok reddedilmemiş key-value filtre terimini ve AND içeren diğer her şeyi otomatik olarak değerlendirir.

Örneğin:

tag:foo tag:bar package:myapp

Şu şekilde değerlendirilir:

(tag:foo | tag:bar) & package:myapp

Ancak:

tag:foo -tag:bar package:myapp

Şu şekilde değerlendirilir:

tag:foo & -tag:bar & package:myapp

Birden fazla sorgu terimi, mantıksal bir operatör olmadan boşlukla ayrılırsa bunlar düşük öncelikli bir AND olarak ele alınır. Örneğin, foo bar tag:bar1 | tag:bar2 terimi 'foo bar' & (tag: bar1 | tag: bar2) ile eşdeğerdir.

Özel sorgular

package:mine

Paket anahtarı, mine özel değerini destekler. Bu özel değer, açık projenin içerdiği tüm paket adlarıyla eşleşir.

level

level sorgusu, Logcat mesajının günlük düzeyiyle eşleşir. Burada günlük giriş düzeyi, sorgu düzeyinden büyük veya ona eşittir.

Örneğin level:INFO; günlük düzeyi INFO, WARN, ERROR veya ASSERT olan herhangi bir günlük girişiyle eşleşir. Düzey büyük/küçük harfe duyarlı değildir. Geçerli düzeyler şunlardır: VERBOSE, DEBUG, INFO, WARN, ERROR ve ASSERT.

age

age sorgusu, girişleri zaman damgalarına göre eşleştirir ve age:<number><unit> olarak biçimlendirilir. Burada

  • <number> bir tam sayıdır
  • <unit>; s, m, h ve d değerlerinden biridir (saniye, dakika, saat ve gün).

Aşağıdaki listeye göre age sorgusu, değer tarafından açıklanan aralıkta bir zaman damgasına sahip günlük mesajlarını eşleştirir. Örneğin: age:5m sorgusu, zaman damgası en fazla 5 dakika önce olan girişlerle eşleşir.

age:30s
age:5m
age:3h
age:1d

Zaman damgasının bağlı cihazla değil, ana makinenin zaman damgasıyla karşılaştırıldığını unutmayın. Cihazın saati doğru şekilde ayarlanmamışsa bu sorgu beklendiği gibi çalışmayabilir.

is anahtarı

is anahtarını aşağıdaki şekilde kullanabilirsiniz:

  • is:crash, bir uygulama kilitlenmesini temsil eden günlük girişleriyle (yerel veya Java) eşleşir.
  • is:stacktrace, günlük düzeyinden bağımsız olarak Java yığın izlemesine benzeyen herhangi bir şeyi temsil eden günlük girişlerini eşleştirir.

name anahtarı

name anahtarı, kayıtlı bir filtreye benzersiz bir ad vermenizi sağlar. Böylece, bu anahtar filtre geçmişi açılır listesinde kolayca tanımlanabilir. name değerini birden fazla kez belirtmek için hata almasanız da IDE, sorguda yalnızca name için belirtilen son değeri kullanır.

Sorgu geçmişini görüntüleme

Sorgu alanının yanındaki Geçmişi göster Filtre simgesi düğmesini tıklayarak sorgu geçmişinizi görüntüleyebilirsiniz. Bir sorguyu tüm stüdyo projelerinizde listenin başında olacak şekilde favorilere eklemek için sorgunun yanındaki yıldızı tıklayın. Sık kullanılan sorguların daha kolay anlaşılmasını sağlamak için name: tuşunu da kullanabilirsiniz. Daha fazla bilgi için Özel sorgular bölümüne bakın.

Bir sorguyu favorilere eklemek için kullanıcı arayüzü

4. Şekil. Sorgunun yanındaki yıldızı tıklayarak sorguyu favorilerinize ekleyin.

Uygulama kilitlenmeleri ve yeniden başlatmalarda günlükleri takip edin

Logcat, uygulama işleminizin durduğunu ve yeniden başlatıldığını fark ettiğinde çıkışta PROCESS ENDED ve PROCESS STARTED gibi bir mesaj görüntüler. Logcat'i yeniden başlattığınızda sekme bölmeleri, filtreler ve görünüm seçenekleri gibi oturum yapılandırmanızı koruyarak oturumunuza kolayca devam edebilirsiniz.

Uygulama kilitlenmelerine ilişkin logcat penceresi

5.Şekil Uygulama işleminiz yeniden başlatıldığında Logcat, işlemin sona erip sonra başlatıldığını belirten bir mesaj yazdırır.