Filter keluaran dalam logcat dengan tagname


151

Saya mencoba untuk memfilter keluaran logcat dari perangkat nyata (bukan emulator) dengan nama tag tetapi saya mendapatkan semua pesan yang merupakan spam. Saya hanya ingin membaca pesan dari peramban yang seharusnya berupa "peramban: " atau "webkit: ", tetapi tidak berfungsi ... Ini dia yang saya dapat:

hasil aktual

Jawaban:


294

Gunakan ini:

adb logcat -s "TAGNAME"

7
Terima kasih! Di atas sama dengan adb logcat *: s 'tagname'
munch

3
Bagaimana saya bisa memfilter <tagname> OUT?
Arunabh Das

Saya percaya satu-satunya cara untuk menyaring adalah berdasarkan level. Misalnya, jika beberapa aplikasi mengirim spam ke Debug, maka atur tingkat logcat untuk hanya menampilkan Info dan tingkat yang lebih tinggi: logcat *: I
Someone Somewhere

1
Apakah mungkin menggunakan di atas dengan nama file -f? Katakan, skenario saya adalah memfilter log dengan TagName dan membuangnya ke file teks.
Green goblin

9
Das - "adb logcat TAGNAME: s" akan memberi tag berisik.
Don Park

56

Jika seseorang menemukan ini seperti yang saya lakukan, Anda dapat memfilter pada beberapa tag dengan menambahkan koma di antaranya, seperti:

adb logcat -s "browser","webkit"

Jelaskan di mana saya harus meletakkan kode ini. Saya lebah baru. Tolong Jelaskan
Zar E Ahmer

1
@Nepster Ketik yang ada di terminal.
async

Jika Anda menggunakan cygwin di windows, Anda dapat menggunakan grep ... dan ya, ini berfungsi.
sgupta

12

Opsi lain adalah mengatur level log untuk tag tertentu:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Sensor: E

Jika Anda hanya ingin mengatur level log untuk beberapa tag, Anda dapat melakukannya berdasarkan tag per tag.


9

Jangan bergantung pada shell ADB, cukup perlakukan itu (adb logcat) keluaran linux normal lalu pip:

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

5
Ini adalah pilihan yang buruk karena banyak lalu lintas yang tidak perlu dikirim, dan filter jelas tidak akan berfungsi. Jika proses log yang tidak terkait, pesan yang kebetulan memiliki beberapa string di dalamnya akan muncul.
John Smith

and the filter obviously won't workSudahkah kamu mencoba? Saya sudah, dan menempelkan jawaban saya sesuai dengan hasilnya.
Siwei Shen 申思维

1
Pertanyaannya adalah untuk windows, di mana grep tidak tersedia
sroskelley

1
Jika Anda menggunakan cygwin di windows, Anda dapat menggunakan grep ... dan ya, ini berfungsi.
sgupta

6

Inilah cara saya membuat tag:

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

Anda bisa menggunakan getCannonicalName

Di sini saya memiliki filter TAG berikut:

  • any (*) View - VERBOSE
  • setiap (*) Aktivitas - VERBOSE
  • tag apa saja yang dimulai dengan Xyz (*) - ERROR
  • System.out - SILENT (karena saya menggunakan Log in kode saya sendiri)

Di sini apa yang saya ketik di terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.