วิธีกรอง Logcat ใน Android Studio


100

ใน logcat ของฉันมีผลลัพธ์มากเกินไปดังนั้นฉันจึงต้องการกรองโดยใช้คำหลักบางคำโดยทั่วไปจะแสดงเฉพาะผลลัพธ์ที่มีคำหลักเท่านั้น มีวิธีทำใน Android Studio ผ่าน UI หรือไม่



ไม่ฉันกำลังถามวิธีการกรองข้อความตามคีย์เวิร์ด
Alessandro Roaro

จาก android studio ver 0.4.5 คุณจะได้รับข้อความจากแอพที่กำลังทำงานเท่านั้น 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

คำตอบ:


109

มีสองวิธีในการทำเช่นนี้ทั้งสองอย่างอยู่ในแท็บ Android ที่ด้านล่างของ IDE (ที่แสดงเอาต์พุต logcat)

ขั้นแรกคุณสามารถพิมพ์บางอย่างลงในช่องค้นหาที่ด้านบนและควรกรองเฉพาะข้อความที่มีข้อความที่คุณพิมพ์

ประการที่สองคุณสามารถทำการกรองขั้นสูงได้โดยคลิกที่เมนูแบบเลื่อนลงที่ด้านบนขวาซึ่งควรจะแสดงไม่มีตัวกรองตามค่าเริ่มต้นและเลือกEdit Filter Configurationและระบุสิ่งที่จะกรอง การใช้วิธีนี้ช่วยให้คุณสามารถบันทึกตัวกรองและใช้ซ้ำได้โดยเลือกในเมนูแบบเลื่อนลง

ภาพหน้าจอ:
ค้นหาและกรอง Logcat


1
ขอบคุณสำหรับคำตอบ ฉันได้ลองครั้งแรกแล้ว แต่ไม่ได้กรองผลลัพธ์ที่ไม่เกี่ยวข้องออกไป Re: ตัวเลือกที่สองโชคไม่ดีที่ไม่เห็นเมนูแบบเลื่อนลงคุณใช้เวอร์ชันอะไร
Alessandro Roaro

1
ฉันใช้ v0.3.5 ... เพิ่มภาพหน้าจอในคำตอบ
free3dom

1
ฉันเพิ่งสังเกตเห็นสิ่งนี้ในขณะที่ทำภาพหน้าจอมีวิธีอื่นในการกรอง บนซ้ายด้านข้าง (ขวาถัดจากแท็บ) เป็นไอคอนที่มีลูกศรสีเขียว - มันสามารถสลับการเปิด / ปิดเพื่อแสดงเฉพาะ logcat จากกระบวนการที่เลือกไว้ในรายการ :)
free3dom

ขอบคุณฉันไม่มีตัวกรองเหล่านั้นในเวอร์ชันของฉัน (0.3.2)
Alessandro Roaro

ไม่มีปัญหา! ฉันคิดว่ามันถูกเพิ่มใน v0.3.3 / 4 แล้ว Android Studio จะดีขึ้นเรื่อย ๆ ในแต่ละเวอร์ชัน :)
free3dom

87

สิ่งที่ฉันทำคือคลิกขวาที่บรรทัดที่ฉันไม่ชอบแล้วเลือก "พับเส้นแบบนี้"ป้อนคำอธิบายภาพที่นี่


10
ว้าวมาก !! หวังว่าฉันจะรู้เรื่องนี้ก่อนหน้านี้!
miva2

8
นี่น่าจะเป็นคำตอบ
ดีใจ

2
แค่นี้ก็แก้ปัญหาน้ำท่วมได้ด้วย genymotion บน Android Studio logcat ขอบคุณ
ฟลอริดา

3
ประหลาดใจที่ฉันไม่เคยสังเกตเห็นสิ่งนี้มาก่อน หาดี!
dm78

1
ตกลงเข้าใจแล้ว :-D (เพียงดับเบิลคลิกที่รายการสีเขียวที่มีข้อความ: "n การโทรภายใน")
Aydin K.

53

ดังที่ @ free3dom กล่าวว่าคุณสามารถเลือกกระบวนการที่คุณต้องการรับ logcats ได้ นี่คือภาพหน้าจอ

ภาพหน้าจอ


2
ขอขอบคุณที่เพิ่มสิ่งนี้ เป็นเรื่องดีที่มีที่นี่สำหรับทุกคนและฉันพูดถึงมันในความคิดเห็นเท่านั้น :)
free3dom

39
กราฟิกดีด้วย ;-)
เจอราร์ด

1
จาก android studio เวอร์ชั่น 0.4.5 คุณจะได้รับข้อความจากแอพที่กำลังทำงานอยู่เท่านั้น 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 เพื่อกดสิ่งนี้ใน 'แสดงเฉพาะบันทึกจากกระบวนการที่เลือกเท่านั้น'
lujop

ฉันมีปัญหาอื่นเมื่อฉันใช้ตัวกรองจากการกำหนดค่าตัวกรองสำหรับแพ็คเกจเฉพาะ logcat ว่างเปล่า
Bhupesh

19

ฉันทำวิดีโอการสอนเพื่อแสดงให้คุณเห็น = https://youtu.be/xw2qE5ko_9I

ตั้งชื่อบันทึกของคุณ ฉันเรียกของฉันว่า "wawa"

ป้อนคำอธิบายภาพที่นี่

ใน Android Studio ไปที่ Android-> แก้ไขการกำหนดค่าตัวกรอง

ป้อนคำอธิบายภาพที่นี่

จากนั้นพิมพ์ชื่อที่คุณให้บันทึก ในกรณีของฉันเรียกว่า "wawa" นี่คือตัวอย่างบางส่วนของประเภทของตัวกรองที่คุณสามารถทำได้ คุณสามารถกรองตามชื่อ System.out, System.err, Logs หรือแพ็คเกจ:

ป้อนคำอธิบายภาพที่นี่ ป้อนคำอธิบายภาพที่นี่ ป้อนคำอธิบายภาพที่นี่


2
มี regex ที่จะลบล้างสิ่งนี้เพื่อซ่อนบันทึกที่มีบรรทัดหรือไม่
Hugo M. Zuleta

ไม่ใช่ว่าฉันรู้ หากคุณต้องการใช้ regex ฉันคิดว่าวิธีที่ดีที่สุดคือการเพิ่มลงใน Android OS และใช้ Grep บน Bash Terminal
ยีน

^ (?! chromium) (?! WebViewFactory) (?! zygote) .... เพิ่มแท็กที่คุณต้องการซ่อนเช่น (?! TAG_NAME) หากคุณต้องการใช้ regex สำหรับแท็กเช่น คุณต้องการซ่อนแท็กทั้งหมดที่ขึ้นต้นด้วย "asd" จากนั้นคุณเพิ่ม (?! (^ asd)) ใน "รายการ" ของแท็กนี้
Drusantia

11

ก่อนอื่นให้ประกาศชื่อ TAG ของคุณในรหัสของคุณเช่น

private static final String TAG = "MainTagName";

จากนั้นเพิ่มคำสั่งบันทึกที่คุณต้องการส่งออกบางสิ่ง

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

ตาม free3dom ในโพสต์ที่สองบนแท็บ logcat คลิกที่เมนูแบบเลื่อนลงตัวกรองจากนั้นแก้ไขการกำหนดค่าตัวกรอง

ในตัวอย่างนี้เราใช้ตัวเลือกLog Tag (regex)เพื่อแสดงข้อความบันทึกสำหรับชื่อแท็กที่ตรงกันสามชื่อโดยใช้ไปป์ | ตัวคั่น (ไม่มีช่องว่าง):

MainTagName|SomeTagName|SomeOtherTagName

2
ฉันไม่ได้รับเอาต์พุต logcat ใด ๆ เมื่อใช้ | เพื่อแยกแท็กทั้งสอง (Android Studio 1.2)
ใครสักคนใน

2
@SomeoneSomewhere ตรวจสอบให้แน่ใจว่าชื่อ TAG ของคุณตรงกับพารามิเตอร์แรกในคำสั่ง Log ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างระหว่างชื่อแท็กและไปป์เช่น tag1 | tag2 ตรวจสอบให้แน่ใจว่าคุณกดปุ่มแท็กคำสั่งโดยการดีบักโค้ดของคุณ ตรวจสอบว่าระดับการบันทึกของคุณถูกตั้งค่าเป็น Debug หรือ Verbose ในรายการระดับการบันทึกแบบเลื่อนลงในหน้าต่าง logcat
HostMyBus

2
ฉันลองชุดต่างๆมาแล้ว ของฉันล้มเหลวเพราะฉันมีตัวกรองที่มีช่องว่างและ | เช่น "Tag1 | Tag2" พบคำตอบนี้และลบช่องว่างออกและทำงานได้อย่างสมบูรณ์ ขอบคุณ!
raddevus

6

ฉันมีปัญหาในการเปิดตัวกรองใน Logcat หากต้องการดูตัวกรองใน Android Studio 3.2 คุณต้องเปิดและปิด "โหมดลอยตัว" อีกครั้งเพื่อให้ตัวกรองปรากฏขึ้นอีกครั้ง

ป้อนคำอธิบายภาพที่นี่


3

ทางเลือกหนึ่งที่เหมาะกับฉันคือการเลือกShow only selected applicationตัวเลือกในเมนูตัวกรอง:

ป้อนคำอธิบายภาพที่นี่


มีความคิดอย่างไรเมื่อมีตัวเลือก "Firebase" ฉันเห็นมันเป็นครั้งแรกในวันนี้ (หลังจากใช้เวลาสงสัยว่าทำไมแอปของฉันถึงไม่บันทึกอีกต่อไป)
Richard Le Mesurier

ฉันไม่รู้เลยว่ามันอยู่ตรงนั้นด้วยซ้ำ
Ojonugwa Jude Ochalifu

1
ฉันก็ไม่ได้เลือก แต่ฉันได้เลือกมัน (โดยไม่รู้ตัว) และนั่นทำให้เสียเวลาไปมาก อย่างไรก็ตาม
Richard Le Mesurier

2

ฉันไม่รู้ว่ารูปภาพในคำตอบอื่น ๆ นั้นเก่าหรือไม่หรือมีบางอย่างหายไป แต่นี่คือรูปภาพที่อัปเดต

คลิกแท็บAndroid Monitorที่ด้านล่างและตรวจสอบว่าได้เลือกแท็บlogcatแล้ว จากนั้นพิมพ์สิ่งที่คุณต้องการกรองผลลัพธ์ของคุณ TAGฉันกรองเหมืองที่มีชื่อแท็กของฉัน

ป้อนคำอธิบายภาพที่นี่


2

เพียงเพื่อเพิ่มข้อผิดพลาดของตัวเอง:

ตรวจสอบให้แน่ใจว่าเมื่อคุณใช้ Emulator และอุปกรณ์จริงเพื่อเปลี่ยนไปใช้อุปกรณ์ที่คุณกำลังแก้ไขข้อบกพร่องในเมนูแบบเลื่อนลงทางด้านซ้ายเหนือแท็บ logcat


1

ดูhttps://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205นี้

เพียงสร้างตัวกรอง LogCat แทรกด้านล่าง String เป็น "LogTag" ซึ่งจะไม่สนใจบรรทัดของระบบ

^(?!.*(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))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.