Logcat'teki çıktıyı tagname göre filtrele


151

Etiket adına göre gerçek bir cihazdan (emülatör değil) logcat çıktısını filtrelemeye çalışıyorum ama oldukça spam olan tüm mesajları alıyorum. Tarayıcıdan "tarayıcı: " veya "webkit: " gibi bir şey olması gereken mesajları okumak istiyorum , ancak çalışmıyor ... İşte aldığım şey:

gerçek çıktı

Yanıtlar:


294

bunu kullan:

adb logcat -s "TAGNAME"

7
Teşekkür ederim! Yukarıdaki adb logcat * ile eşdeğerdir: s 'tagname'
munch

3
Bir <tagname> anahtarını nasıl filtreleyebilirim?
Arunabh Das

Filtrelemenin tek yolunun seviyelere göre olduğuna inanıyorum. Örneğin, bazı uygulamalar Hata Ayıklama'yı spam yapıyorsa, logcat seviyesini yalnızca Bilgi ve daha yüksek seviyeleri gösterecek şekilde ayarlayın: logcat *: I
Someone Somewhere

1
Yukarıda -f dosya adıyla kullanmak mümkün müdür? Diyelim ki senaryom günlükleri TagName'e göre filtrelemek ve bir metin dosyasına dökmektir.
Green goblin

9
Das - "adb logcat TAGNAME: s" gürültülü bir etiketi silecek.
Don Park

56

Birisi benim yaptığım gibi bu tökezlemek durumunda, aralarında bir virgül ekleyerek, birden çok etiket üzerinde filtre uygulayabilirsiniz:

adb logcat -s "browser","webkit"

Bu kodu nereye koyacağımı açıklayın. Ben yeni bir arıyım. Lütfen Açıklayın
Zar E Ahmer

1
@Nepster Terminalde bunu yazın.
async

Windows'ta cygwin kullanıyorsanız, grep kullanabilirsiniz ... ve evet, bu işe yarıyor.
sgupta

12

Başka bir seçenek, belirli etiketler için günlük düzeylerini ayarlamaktır:

adb logcat SensorService: S PowerManagerServis: S NfcHizmet: S güç: I Sensörler: E

Yalnızca bazı etiketler için günlük düzeylerini ayarlamak istiyorsanız, bunu etiket temelinde etiket temelinde yapabilirsiniz.


9

ADB kabuğuna bağımlı olmayın, sadece (adb logcat) normal bir linux çıkışı tedavi edin ve daha sonra pipetleyin:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
Bu, kötü bir seçimdir çünkü birçok gereksiz trafik gönderilir ve filtre açıkça çalışmaz. İlişkisiz bir işlem günlüğe kaydederse, içinde bazı dize olur.
John Smith

and the filter obviously won't work, denedin mi? Cevabımı sonuca göre yapıştırdım ve yapıştırdım.
Siwei Shen 申思维

1
Soru,
grep'in

1
Windows'ta cygwin kullanıyorsanız, grep kullanabilirsiniz ... ve evet, bu işe yarıyor.
sgupta

6

Nasıl etiket oluşturabilirim:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

GetCannonicalName'i kullanabilirsiniz

Burada aşağıdaki TAG filtreleri var:

  • any (*) Görüntüle - VERBOSE
  • herhangi bir (*) Etkinlik - VERBOSE
  • Xyz (*) ile başlayan herhangi bir etiket - ERROR
  • System.out - SILENT (Log'u kendi kodumda kullandığım için)

Burada ne yazıyorum terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.