Bagaimana cara memfilter logcat di Android Studio?

96

Di logcat saya, ada terlalu banyak output, jadi saya ingin memfilternya menggunakan beberapa kata kunci, pada dasarnya hanya menampilkan output yang berisi kata kunci. Apakah ada cara untuk melakukannya di Android Studio melalui UI?

Alessandro Roaro
sumber
tidak, saya bertanya bagaimana cara memfilter pesan dengan kata kunci.
Alessandro Roaro
mulai dari android studio ver 0.4.5 Anda akan mendapatkan pesan dari aplikasi yang hanya berjalan. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

Jawaban:

107

Ada dua cara untuk melakukannya, keduanya ada di tab Android di bagian bawah IDE (tempat keluaran logcat ditampilkan).

Pertama, Anda cukup mengetikkan sesuatu ke dalam kotak pencarian di bagian atas dan itu hanya akan memfilter pesan yang berisi teks yang Anda ketik.

Kedua, Anda dapat melakukan pemfilteran lanjutan dengan mengklik tarik-turun di kanan atas, yang seharusnya menampilkan Tanpa Filter secara default, dan memilih Edit Filter Configurationserta menentukan apa yang akan difilter. Dengan menggunakan metode ini, Anda juga menyimpan filter dan dapat menggunakannya kembali dengan memilihnya di menu tarik-turun.

Tangkapan layar:
Cari & Filter Logcat

free3dom
sumber
1
Terima kasih atas jawaban Anda. Saya sudah mencoba yang pertama, tetapi tidak menyaring keluaran yang tidak relevan. Re: opsi kedua, sayangnya saya tidak dapat melihat menu dropdown, versi apa yang Anda gunakan?
Alessandro Roaro
1
Saya menggunakan v0.3.5 ... menambahkan tangkapan layar ke jawabannya.
free3dom
1
Saya baru saja memperhatikan ini saat melakukan tangkapan layar, BELUM ada cara lain untuk memfilter. Di sisi kiri (tepat di sebelah tab) adalah ikon dengan panah hijau - dapat diaktifkan / dinonaktifkan untuk hanya menampilkan logcat dari proses yang dipilih dalam daftar :)
free3dom
Terima kasih, saya tidak memiliki filter itu di versi saya (0.3.2)
Alessandro Roaro
Tidak masalah! Saya kira itu ditambahkan di v0.3.3 / 4 lalu. Android Studio menjadi lebih baik dengan setiap versi :)
free3dom
82

Yang saya lakukan adalah klik kanan pada baris yang tidak saya suka dan pilih "Lipat garis seperti ini"masukkan deskripsi gambar di sini

James Hackett
sumber
9
Wow LUAR BIASA!! Seandainya saya tahu ini sebelumnya!
miva2
7
Ini harus menjadi jawabannya.
gladed
2
Hanya ini yang menyelesaikan banjir saya oleh genymotion di logcat Android Studio, terima kasih.
Florida
3
Kagum, saya tidak pernah memperhatikan ini sebelumnya. Temuan bagus!
dm78
1
ok mengerti :-D (cukup klik dua kali pada entri berwarna hijau dengan teks: "n panggilan internal")
Aydin K.
53

Seperti yang dikatakan @ free3dom, Anda dapat memilih dari proses mana Anda ingin menerima logcats. Ini tangkapan layarnya.

Tangkapan Layar

dmSherazi
sumber
2
Terima kasih telah menambahkan ini. Senang memilikinya di sini untuk semua orang dan saya hanya menyebutkannya di komentar :)
free3dom
39
Grafik yang bagus juga ;-)
Gerard
1
mulai dari android studio ver 0.4.5 u akan mendapatkan pesan dari aplikasi yang hanya berjalan. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi
1
+1 untuk ketiga, tekan ini pada 'Hanya tampilkan log dari proses yang dipilih'
lujop
Saya memiliki satu masalah lagi, ketika saya menerapkan filter dari konfigurasi filter, untuk paket tertentu, logcat menjadi kosong.
Bhupesh
18

SAYA MEMBUAT TUTORIAL VIDEO UNTUK MENUNJUKKAN CARANYA = https://youtu.be/xw2qE5ko_9I

Beri nama pada log Anda. Aku menyebut milikku "wawa".

masukkan deskripsi gambar di sini

Di Android Studio, buka Android-> Edit Konfigurasi Filter

masukkan deskripsi gambar di sini

Kemudian ketik nama yang Anda berikan pada log. Dalam kasus saya, ini disebut "wawa". Berikut beberapa contoh jenis filter yang dapat Anda lakukan. Anda dapat memfilter berdasarkan System.out, System.err, Logs, atau nama paket:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Gen
sumber
2
Apakah ada regex untuk meniadakan ini, untuk menyembunyikan log yang berisi baris?
Hugo M. Zuleta
Tidak yang saya tahu. Jika Anda ingin menggunakan regex, menurut saya cara terbaik adalah dengan adb ke OS Android dan menggunakan Grep di Bash Terminal.
Gene
^ (?! chromium) (?! WebViewFactory) (?! zygote) .... tambahkan tag seperti ini yang ingin Anda sembunyikan suka (?! TAG_NAME). Jika Anda ingin menggunakan regex untuk tag, mis. Anda ingin menyembunyikan semua tag yang dimulai dengan "asd", lalu Anda menambahkan (?! (^ asd)) ke "daftar" tag ini.
Drusantia
11

Pertama-tama nyatakan nama TAG Anda dalam kode Anda misalnya

private static final String TAG = "MainTagName";

Kemudian tambahkan pernyataan log di mana Anda ingin mengeluarkan sesuatu

Log.d(TAG, "Activity created");

Sesuai free3dom di posting kedua, pada tab logcat klik pada dropdown Filter dan kemudian Edit Konfigurasi Filter.

Dalam contoh ini kami menggunakan opsi Tag Log (regex) untuk menampilkan pesan log untuk salah satu dari tiga nama tag yang cocok menggunakan pipa | pemisah (tanpa spasi):

MainTagName|SomeTagName|SomeOtherTagName
HostMyBus
sumber
2
Saya tidak mendapatkan keluaran logcat saat menggunakan | untuk memisahkan dua tag (Android Studio 1.2)
Someone Somewhere
2
@SomeoneSomewhere Pastikan bahwa nama TAG Anda cocok dengan parameter pertama dalam pernyataan Log. Pastikan tidak ada spasi di antara nama tag dan pipa, misalnya tag1 | tag2. Pastikan bahwa Anda benar-benar menggunakan perintah tag dengan men-debug kode Anda. Periksa apakah level log Anda disetel ke Debug atau Verbose di menu tarik-turun Log level di jendela logcat.
HostMyBus
2
Saya mencoba semua jenis kombinasi. Milik saya gagal karena saya memiliki filter dengan spasi dan | seperti "Tag1 | Tag2". Menemukan jawaban ini dan menghapus spasi dan berfungsi dengan sempurna. Terima kasih!
raddevus
5

Saya mengalami masalah saat menyalakan filter di Logcat. Untuk melihat filter di Android Studio 3.2, Anda harus mengaktifkan dan menonaktifkan 'Floating Mode' lagi untuk membuat filter muncul kembali.

masukkan deskripsi gambar di sini

cinta hidup
sumber
3

Salah satu alternatif yang berhasil bagi saya adalah memilih Show only selected applicationopsi di menu filter:

masukkan deskripsi gambar di sini

Ojonugwa Jude Ochalifu
sumber
Tahu kapan opsi "Firebase" tiba? Saya melihatnya untuk pertama kalinya hari ini (setelah menghabiskan waktu bertanya-tanya mengapa aplikasi saya tidak lagi melakukan logging).
Richard Le Mesurier
Saya tidak tahu itu ada di sana.
Ojonugwa Jude Ochalifu
1
Saya juga tidak, tetapi saya telah memilihnya (tanpa mengetahuinya) dan itu membuang banyak waktu. Terima kasih
Richard Le Mesurier
2

Saya tidak tahu apakah gambar di jawaban lain sudah lama atau jika saya melewatkan sesuatu, tetapi ini adalah gambar yang diperbarui.

Klik tab Android Monitor di bagian bawah dan pastikan tab logcat dipilih. Kemudian ketik apa pun yang Anda inginkan untuk memfilter keluaran Anda. Saya memfilter milik saya dengan nama tag saya TAG.

masukkan deskripsi gambar di sini

Suragch
sumber
2

Hanya untuk menambahkan kesalahan saya sendiri:

pastikan bahwa saat Anda menggunakan Emulator dan perangkat sebenarnya, untuk beralih ke perangkat yang Anda debug di menu tarik-turun di sebelah kiri di atas tab logcat.

Asimov
sumber
1

lihat ini https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

cukup buat filter LogCat, sisipkan di bawah String ke "LogTag" yang kemudian akan mengabaikan baris sistem

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))
Josef Vancura
sumber