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.
- Android Studio'da, fiziksel bir cihaz veya emülatörde uygulamanızı oluşturup çalıştırın.
- 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ır'ı tıklayın. Araç çubuğunu Logcat'i temizlemek, duraklatmak veya yeniden başlatmak için de kullanabilirsiniz.
Ş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 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 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.
Ş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.
Anahtar/değer araması yaparak günlükleri sorgulama
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.
Ş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şinintag
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çins
, dakika içinm
, saat içinh
ve gün içind
. Ö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
ved
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 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.
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.
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.