ดูบันทึกด้วย Logcat

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

เริ่มต้นใช้งานหน้าต่าง Logcat

หากต้องการดูข้อความบันทึกของแอป ให้ทำดังนี้

  1. ใน Android Studio ให้สร้างและเรียกใช้แอปบนอุปกรณ์จริง อุปกรณ์หรือโปรแกรมจำลอง
  2. เลือก มุมมอง > หน้าต่างเครื่องมือ > Logcat จากแถบเมนู

โดยค่าเริ่มต้น Logcat จะเลื่อนไปจนสุด คลิกในมุมมองหรือการเลื่อน Logcat ขึ้น โดยใช้ล้อเลื่อนของเมาส์ จะปิดคุณสมบัตินี้ หากต้องการเปิดอีกครั้ง ให้คลิก เลื่อนไปที่ส่วนท้าย เลื่อนไปที่ไอคอนสิ้นสุด จากแถบเครื่องมือ คุณยังใช้แถบเครื่องมือเพื่อล้าง หยุดชั่วคราว หรือรีสตาร์ทได้ด้วย Logcat

UI หน้าต่าง Logcat

รูปที่ 1 ใช้รูปแบบบันทึก Logcat เพื่อให้ สแกนหาข้อมูลที่เป็นประโยชน์ได้ง่ายขึ้น เช่น แท็กและข้อความ และระบุประเภทของบันทึก เช่น คำเตือนและข้อผิดพลาด

วิธีอ่านบันทึก

บันทึกแต่ละรายการจะมีวันที่ การประทับเวลา กระบวนการ และรหัสชุดข้อความ แท็ก ชื่อแพ็กเกจ ที่เกี่ยวข้อง และข้อความที่เกี่ยวข้อง แท็กต่างๆ มีสีไม่ซ้ำกัน ซึ่งช่วยระบุประเภทของบันทึก รายการบันทึกแต่ละรายการมีลำดับความสำคัญเป็น FATAL ERROR, WARNING, INFO, DEBUG หรือ VERBOSE

ตัวอย่างเช่น ข้อความบันทึกต่อไปนี้มีลำดับความสำคัญเป็น DEBUG และแท็กของ ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

กำหนดค่ามุมมองบันทึก

มุมมองบันทึกมาตรฐานจะแสดงวันที่ กระบวนการ รหัสชุดข้อความ แท็ก ชื่อแพ็กเกจ ลำดับความสำคัญ และข้อความที่เชื่อมโยงกับแพ็กเกจ โดยค่าเริ่มต้น ข้อความ ไม่ได้รวมอยู่ในมุมมองบันทึก แต่คุณสามารถใช้ แบบซอฟต์หุ้ม ไอคอน Soft-Wrap จากแถบเครื่องมือ Logcat

คุณอาจเปลี่ยนเป็นมุมมองกะทัดรัด ซึ่งจะมีข้อมูลการแสดงผลเริ่มต้นน้อยกว่า โดยคลิก กำหนดค่าตัวเลือกการจัดรูปแบบ Logcat จากแถบเครื่องมือ Logcat

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

เปลี่ยนรูปแบบสี

หากต้องการเปลี่ยนรูปแบบสี ให้ไปที่ Android Studio > การตั้งค่า > เอดิเตอร์ > รูปแบบสี หากต้องการเปลี่ยนรูปแบบสีของมุมมองบันทึก เลือก Android Logcat หากต้องการเปลี่ยนรูปแบบสีของฟิลเตอร์ ให้เลือก ตัวกรอง Logcat

ตัวเลือกการกำหนดค่าเพิ่มเติม

สำหรับตัวเลือกการกำหนดค่าเพิ่มเติม โปรดไปที่ Android Studio > การตั้งค่า > เครื่องมือ > Logcat จากตรงนี้ คุณสามารถเลือก Logcat ขนาดบัฟเฟอร์รอบการทำงาน ซึ่งเป็นตัวกรองเริ่มต้นสำหรับหน้าต่าง Logcat ใหม่และดูว่า ต้องการเพิ่มตัวกรองจากประวัติไปยังการเติมข้อความอัตโนมัติ

ใช้ Logcat ในหลายหน้าต่าง

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

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

หน้าต่าง Logcat หลายหน้าต่าง รูปที่ 2 แยกหน้าต่าง Logcat ใน Android Studio

จากแถบเครื่องมือ Logcat คุณจะเลื่อนไปที่ด้านล่างของบันทึก หรือ ก็คลิกเส้นที่ต้องการเพื่อให้มองเห็นเส้นนั้นได้

ใน Android Studio คุณสามารถสร้างการค้นหาคีย์-ค่าจาก ฟิลด์ข้อความค้นหาหลัก ระบบการค้นหานี้จะให้ความแม่นยำของสิ่งที่คุณต้องการค้นหา รวมทั้งยกเว้นบันทึกตามคีย์-ค่าด้วย แม้ว่าคุณจะมีตัวเลือกในการ ใช้นิพจน์ทั่วไป คุณไม่จำเป็นต้องใช้นิพจน์ทั่วไปสำหรับการค้นหา ดู คำแนะนำ ให้กด Ctrl + Space ในช่องค้นหา

รายการคำแนะนำในช่องการค้นหา รูปที่ 3 กด Ctrl + Space ในช่องการค้นหาเพื่อดูรายการ คำค้นหาที่แนะนำ

ตัวอย่างคีย์ที่คุณใช้ในการค้นหาได้มีดังนี้

  • tag: จับคู่กับช่อง tag ของรายการบันทึก
  • package: จับคู่กับชื่อแพ็กเกจของแอปการบันทึก
  • process: จับคู่กับชื่อกระบวนการของแอปการบันทึก
  • message: จับคู่กับส่วนข้อความของรายการบันทึก
  • level: ตรงกับระดับบันทึกที่มีความรุนแรงที่ระบุไว้หรือสูงกว่า เช่น DEBUG
  • age: จับคู่หากการประทับเวลาของรายการเป็นข้อมูลล่าสุด ค่ามีการระบุเป็น ตัวเลขตามด้วยตัวอักษรที่ระบุหน่วยเวลา: s สำหรับวินาที m สำหรับ นาที h สำหรับชั่วโมง และ d สำหรับวัน เช่น ตัวกรอง age: 5m เท่านั้น ข้อความที่มีการบันทึกในช่วง 5 นาทีที่ผ่านมา

นิเสธและนิพจน์ทั่วไป

ฟิลด์ต่อไปนี้รองรับการจับคู่นิเสธและนิพจน์ทั่วไป: tag, package, message และ line

นิเสธจะแสดงด้วยการใส่ - ไว้หน้าชื่อช่อง ตัวอย่างเช่น -tag:MyTag ตรงกับรายการบันทึกที่ tag ไม่มีสตริง MyTag

การจับคู่นิพจน์ทั่วไปจะแสดงโดยใส่ ~ ต่อท้ายชื่อช่อง เช่น tag~:My.*Tag

สามารถใช้ตัวปรับแต่งการลบและนิพจน์ทั่วไปรวมกันได้ ตัวอย่างเช่น -tag~:My.*Tag

โอเปอเรเตอร์เชิงตรรกะและวงเล็บ

ภาษาของการค้นหารองรับโอเปอเรเตอร์ AND และ OR ที่แสดงโดย & และ | และวงเล็บ เช่น

(tag:foo | level:ERROR) & package:mine

โปรดทราบว่าระบบจะบังคับใช้ลำดับความสำคัญของโอเปอเรเตอร์ตามปกติ ดังนี้

tag:foo | level:ERROR & package:mine

ได้รับการประเมินดังต่อไปนี้

tag:foo | (level:ERROR & package:mine)

โอเปอเรเตอร์เชิงตรรกะโดยนัย

ถ้าไม่มีการใช้โอเปอเรเตอร์เชิงตรรกะ ระบบจะใช้ภาษาของการค้นหาโดยอัตโนมัติ ประเมินคำตัวกรอง key-value ที่ไม่ถูกปฏิเสธหลายรายการด้วยคีย์เดียวกันกับ OR และอื่นๆ ที่มี AND

เช่น

tag:foo tag:bar package:myapp

ได้รับการประเมินดังต่อไปนี้

(tag:foo | tag:bar) & package:myapp

แต่:

tag:foo -tag:bar package:myapp

ได้รับการประเมินดังต่อไปนี้

tag:foo & -tag:bar & package:myapp

หากคำค้นหาหลายคำถูกคั่นด้วยช่องว่างโดยไม่มีโอเปอเรเตอร์เชิงตรรกะ จะถือว่าลิงก์เหล่านั้นเป็น "และ" โดยมีลำดับความสำคัญต่ำ ตัวอย่างเช่น คำว่า foo bar tag:bar1 | tag:bar2 เทียบเท่ากับ 'foo bar' & (tag: bar1 | tag: bar2)

ข้อความค้นหาพิเศษ

package:mine

คีย์แพ็กเกจรองรับค่าพิเศษ mine ค่าพิเศษนี้ตรงกับ ชื่อแพ็กเกจที่อยู่ในโปรเจ็กต์แบบเปิด

level

คำค้นหา level จะตรงกับระดับการบันทึกของข้อความ Logcat โดยที่แอตทริบิวต์ ระดับรายการบันทึกมากกว่าหรือเท่ากับระดับการค้นหา

ตัวอย่างเช่น level:INFO จะจับคู่รายการบันทึกที่มีระดับการบันทึกเป็น INFO WARN, ERROR หรือ ASSERT โดยระดับจะไม่พิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ระดับที่ใช้ได้มีดังนี้ VERBOSE, DEBUG, INFO, WARN, ERROR และ ASSERT

age

การค้นหา age จะจับคู่รายการตามการประทับเวลา และมีการจัดรูปแบบเป็น age:<number><unit> โดยที่

  • <number> เป็นจำนวนเต็ม
  • <unit> เป็นหนึ่งใน s, m, h และ d (วินาที นาที ชั่วโมง และวัน)

จากรายการต่อไปนี้ คำค้นหา age จะตรงกับข้อความในบันทึกที่มี การประทับเวลาในช่วงที่อธิบายด้วยค่า ตัวอย่างเช่น ข้อความค้นหา age:5m ตรงกับรายการที่มีการประทับเวลาไม่เกิน 5 นาทีที่ผ่านมา

age:30s
age:5m
age:3h
age:1d

โปรดทราบว่าระบบจะเปรียบเทียบการประทับเวลากับการประทับเวลาของโฮสต์ ไม่ใช่ อุปกรณ์ที่เชื่อมต่ออยู่ หากไม่ได้ตั้งค่าเวลาของอุปกรณ์อย่างถูกต้อง คำค้นหานี้ อาจไม่ทำงานตามที่คาดไว้

คีย์ is

คุณใช้คีย์ is ได้ดังนี้

  • is:crash ตรงกับรายการบันทึกที่แสดงการขัดข้องของแอปพลิเคชัน (ไม่ว่าจะเป็นเนทีฟหรือ Java)
  • is:stacktrace ตรงกับรายการบันทึกที่แสดงทุกอย่างที่ดูเหมือน Java Stacktrace โดยไม่คำนึงถึงระดับการบันทึก

คีย์ name

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

ดูประวัติข้อความค้นหา

คุณสามารถดูประวัติการค้นหาได้โดยคลิก แสดงประวัติ ไอคอนตัวกรอง ข้างช่องการค้นหา ตั้งเป็นรายการโปรดเพื่อให้คำค้นหาปรากฏที่ด้านบนสุดของ จากโปรเจ็กต์สตูดิโอทั้งหมดของคุณ ให้คลิกดาวที่อยู่ด้านข้าง นอกจากนี้คุณยัง ใช้คีย์ name: เพื่อให้จำคำค้นหาโปรดได้ง่ายขึ้น สำหรับข้อมูลเพิ่มเติม โปรดดูคำค้นหาพิเศษ

UI สำหรับการกำหนดคำค้นหาเป็นรายการโปรด

รูปที่ 4 กำหนดข้อความค้นหาเป็นรายการโปรดโดยคลิกดาวที่อยู่ด้านข้าง

ติดตามบันทึกในข้อขัดข้องของแอปและรีสตาร์ท

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

หน้าต่าง Logcat สำหรับข้อขัดข้องของแอป

รูปที่ 5 เมื่อกระบวนการของแอปรีสตาร์ท Logcat จะพิมพ์ข้อความว่า สิ้นสุดและจากนั้น