หน้าต่าง Logcat ใน Android Studio จะช่วยคุณแก้ไขข้อบกพร่องของแอปโดยทำดังนี้
แสดงบันทึกจากอุปกรณ์แบบเรียลไทม์ เช่น ข้อความที่คุณ
ที่เพิ่มลงในแอปพร้อมกับชั้นเรียน Log
, ข้อความ
จากบริการที่ทำงานใน Android หรือข้อความจากระบบ เช่น เมื่อไฟล์ขยะ
เกิดการเก็บรวบรวมข้อมูล เมื่อแอปส่งข้อยกเว้น Logcat จะแสดงข้อความ
ตามด้วยสแต็กเทรซที่เกี่ยวข้องซึ่งมีลิงก์ไปยังบรรทัดของโค้ด
เริ่มต้นใช้งานหน้าต่าง Logcat
หากต้องการดูข้อความบันทึกของแอป ให้ทำดังนี้
- ใน Android Studio ให้สร้างและเรียกใช้แอปบนอุปกรณ์จริง อุปกรณ์หรือโปรแกรมจำลอง
- เลือก มุมมอง > หน้าต่างเครื่องมือ > Logcat จากแถบเมนู
โดยค่าเริ่มต้น Logcat จะเลื่อนไปจนสุด คลิกในมุมมองหรือการเลื่อน Logcat ขึ้น โดยใช้ล้อเลื่อนของเมาส์ จะปิดคุณสมบัตินี้ หากต้องการเปิดอีกครั้ง ให้คลิก เลื่อนไปที่ส่วนท้าย จากแถบเครื่องมือ คุณยังใช้แถบเครื่องมือเพื่อล้าง หยุดชั่วคราว หรือรีสตาร์ทได้ด้วย 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
กำหนดค่ามุมมองบันทึก
มุมมองบันทึกมาตรฐานจะแสดงวันที่ กระบวนการ รหัสชุดข้อความ แท็ก ชื่อแพ็กเกจ ลำดับความสำคัญ และข้อความที่เชื่อมโยงกับแพ็กเกจ โดยค่าเริ่มต้น ข้อความ ไม่ได้รวมอยู่ในมุมมองบันทึก แต่คุณสามารถใช้ แบบซอฟต์หุ้ม จากแถบเครื่องมือ Logcat
คุณอาจเปลี่ยนเป็นมุมมองกะทัดรัด ซึ่งจะมีข้อมูลการแสดงผลเริ่มต้นน้อยกว่า โดยคลิก กำหนดค่าตัวเลือกการจัดรูปแบบ Logcat จากแถบเครื่องมือ Logcat
หากต้องการกำหนดค่าข้อมูลที่ต้องการให้แสดงเพิ่มเติม ให้เลือก แก้ไขมุมมอง และเลือกว่าคุณต้องการดูการประทับเวลา แท็ก รหัสการประมวลผล หรือชื่อแพ็กเกจที่แสดง
เปลี่ยนรูปแบบสี
หากต้องการเปลี่ยนรูปแบบสี ให้ไปที่ Android Studio > การตั้งค่า > เอดิเตอร์ > รูปแบบสี หากต้องการเปลี่ยนรูปแบบสีของมุมมองบันทึก เลือก Android Logcat หากต้องการเปลี่ยนรูปแบบสีของฟิลเตอร์ ให้เลือก ตัวกรอง Logcat
ตัวเลือกการกำหนดค่าเพิ่มเติม
สำหรับตัวเลือกการกำหนดค่าเพิ่มเติม โปรดไปที่ Android Studio > การตั้งค่า > เครื่องมือ > Logcat จากตรงนี้ คุณสามารถเลือก Logcat ขนาดบัฟเฟอร์รอบการทำงาน ซึ่งเป็นตัวกรองเริ่มต้นสำหรับหน้าต่าง Logcat ใหม่และดูว่า ต้องการเพิ่มตัวกรองจากประวัติไปยังการเติมข้อความอัตโนมัติ
ใช้ Logcat ในหลายหน้าต่าง
แท็บช่วยให้คุณสลับระหว่างอุปกรณ์หรือคำค้นหาต่างๆ ได้อย่างง่ายดาย คุณสามารถสร้าง แท็บ Logcat หลายๆ แท็บโดยคลิก แท็บใหม่ การคลิกขวาที่แท็บจะช่วยให้คุณเปลี่ยนชื่อและจัดเรียงแท็บได้
นอกจากนี้ คุณสามารถแยกมุมมองไว้ในแท็บเพื่อช่วยให้ง่ายขึ้น เปรียบเทียบบันทึก 2 ชุด หากต้องการสร้างการแยก ให้คลิกขวาใน มุมมองบันทึก หรือคลิกตัวเลือก แยกแผง จากแถบเครื่องมือ และเลือก แยกไปทางขวาหรือแยกลง หากต้องการปิดการแยก ให้คลิกขวาและ เลือกปิด การแยกแต่ละครั้งจะช่วยให้คุณตั้งค่าการเชื่อมต่ออุปกรณ์ของตัวเองได้ ดู ตัวเลือก และการค้นหา
รูปที่ 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:
เพื่อให้จำคำค้นหาโปรดได้ง่ายขึ้น สำหรับข้อมูลเพิ่มเติม
โปรดดูคำค้นหาพิเศษ
รูปที่ 4 กำหนดข้อความค้นหาเป็นรายการโปรดโดยคลิกดาวที่อยู่ด้านข้าง
ติดตามบันทึกในข้อขัดข้องของแอปและรีสตาร์ท
เมื่อ Logcat สังเกตเห็นว่ากระบวนการของแอปหยุดและรีสตาร์ทแล้ว ก็จะแสดง
ข้อความในเอาต์พุต เช่น PROCESS ENDED
และ PROCESS STARTED
การรีสตาร์ท Logcat จะเก็บการกำหนดค่าเซสชันของคุณ เช่น การแยกแท็บ
ตัวกรอง และตัวเลือกมุมมอง เพื่อให้คุณสามารถดำเนินเซสชันของคุณต่อได้โดยง่าย
รูปที่ 5 เมื่อกระบวนการของแอปรีสตาร์ท Logcat จะพิมพ์ข้อความว่า สิ้นสุดและจากนั้น