กรองเอาท์พุทใน logcat โดย tagname


151

ฉันพยายามกรองผลลัพธ์ logcat จากอุปกรณ์จริง (ไม่ใช่อีมูเลเตอร์) ตามชื่อแท็ก แต่ฉันได้รับข้อความทั้งหมดซึ่งค่อนข้างเป็นสแปม ฉันแค่ต้องการอ่านข้อความจากเบราว์เซอร์ซึ่งควรเป็น "เบราว์เซอร์: " หรือ "webkit: " แต่มันไม่ทำงาน ... นี่คือสิ่งที่ฉันได้รับ:

เอาต์พุตจริง

คำตอบ:


294

ใช้สิ่งนี้:

adb logcat -s "TAGNAME"

7
ขอบคุณ! ด้านบนเทียบเท่ากับ adb logcat *: s 'tagname'
munch

3
ฉันจะกรอง <tagname> ได้อย่างไร
Arunabh Das

ฉันเชื่อว่าวิธีเดียวในการกรองออกเป็นระดับ ตัวอย่างเช่นหากแอพบางตัวกำลังสแปม Debug ให้ตั้งค่าระดับ logcat ให้แสดงเฉพาะข้อมูลและระดับที่สูงกว่า: logcat *: I
บางคนที่ไหนสักแห่ง

1
เป็นไปได้หรือไม่ที่จะใช้กับชื่อไฟล์ -f ข้างต้น? สมมติว่าสถานการณ์ของฉันคือการกรองบันทึกโดย TagName และดัมพ์ไปยังไฟล์ข้อความ
ผีสีเขียว

9
Das - "adb logcat TAGNAME: s" จะมีแท็กที่มีเสียงดัง
Don Park

56

ในกรณีที่มีคนสะดุดในสิ่งนี้เช่นฉันคุณสามารถกรองหลายแท็กโดยเพิ่มเครื่องหมายจุลภาคในระหว่างเช่น:

adb logcat -s "browser","webkit"

อธิบายว่าฉันควรใส่รหัสนี้ไว้ที่ไหน ฉันเป็นผึ้งตัวใหม่ โปรดอธิบาย
Zar E Ahmer

1
@Nepster พิมพ์ที่อยู่ในเครื่อง
async

หากคุณใช้ cygwin บน windows คุณสามารถใช้ grep ... และใช่ได้ผล
sgupta

12

อีกตัวเลือกหนึ่งคือการตั้งค่าระดับการบันทึกสำหรับแท็กเฉพาะ:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I เซ็นเซอร์: E

หากคุณต้องการตั้งค่าระดับการบันทึกสำหรับแท็กบางรายการคุณสามารถทำได้ในแท็กด้วยแท็กพื้นฐาน


9

อย่าพึ่งเชลล์ ADB เพียงแค่ใช้มัน (the adb logcat) ซึ่งเป็นลินุกซ์เอาท์พุทปกติจากนั้นทำการ pip:

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

5
นี่เป็นตัวเลือกที่ไม่ดีเพราะมีการรับส่งข้อมูลที่ไม่จำเป็นจำนวนมากและตัวกรองเห็นได้ชัดว่าใช้งานไม่ได้ หากกระบวนการที่ไม่เกี่ยวข้องบันทึกข้อความที่เกิดขึ้นมีสตริงในนั้นจะปรากฏขึ้น
John Smith

and the filter obviously won't workคุณเคยลองไหม ฉันได้และวางคำตอบของฉันตามผล
Siwei Shen 申思维

1
คำถามสำหรับ windows ที่ grep ไม่พร้อมใช้งาน
sroskelley

1
หากคุณใช้ cygwin บน windows คุณสามารถใช้ grep ... และใช่ได้ผล
sgupta

6

นี่คือวิธีที่ฉันสร้างแท็ก:

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

คุณสามารถใช้ getCannonicalName

ที่นี่ฉันมีตัวกรอง TAG ดังต่อไปนี้:

  • มุมมอง (*) ใด ๆ - VERBOSE
  • กิจกรรมใด ๆ (*) - VERBOSE
  • แท็กใด ๆ ที่เริ่มต้นด้วย Xyz (*) - ข้อผิดพลาด
  • System.out - SILENT (ตั้งแต่ฉันใช้เข้าสู่ระบบด้วยรหัสของตัวเอง)

นี่คือสิ่งที่ฉันพิมพ์ใน terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.