วิธีการที่แตกต่างกันบ่งบอกถึงลำดับความสำคัญ ในขณะที่คุณระบุพวกเขาพวกเขาจะจากน้อยไปสำคัญที่สุด ฉันคิดว่าวิธีการที่คุณแมปพวกเขาโดยเฉพาะเพื่อตรวจแก้จุดบกพร่องบันทึกในรหัสของคุณขึ้นอยู่กับส่วนประกอบหรือแอพที่คุณกำลังทำงานเช่นเดียวกับวิธีที่ Android ปฏิบัติต่อพวกเขาในการสร้างรสชาติที่แตกต่าง (อังกฤษ userdebug ฉันใช้งาน daemons ดั้งเดิมใน Android แล้วและนี่เป็นวิธีที่ฉันทำ อาจใช้ไม่ได้กับแอปของคุณโดยตรง แต่อาจมีสาเหตุบางประการ หากคำอธิบายของฉันฟังดูคลุมเครือนั่นเป็นเพราะบางสิ่งนี้เป็นศิลปะมากกว่าวิทยาศาสตร์ กฎพื้นฐานของฉันคือให้มีประสิทธิภาพมากที่สุดตรวจสอบให้แน่ใจว่าคุณสามารถดีบักส่วนประกอบของคุณอย่างสมเหตุสมผลโดยไม่ทำลายประสิทธิภาพของระบบและตรวจสอบข้อผิดพลาดและบันทึกพวกเขาอยู่เสมอ
V - พิมพ์ของรัฐในช่วงเวลาที่แตกต่างกันหรือตามเหตุการณ์ใด ๆ ที่เกิดขึ้นซึ่งองค์ประกอบของฉันกระบวนการ อาจเป็นงานพิมพ์ที่มีรายละเอียดมากของเพย์โหลดของข้อความ / เหตุการณ์ที่องค์ประกอบของฉันได้รับหรือส่ง
D - รายละเอียดของเหตุการณ์เล็ก ๆ น้อย ๆ ที่เกิดขึ้นภายในองค์ประกอบของฉันเช่นเดียวกับน้ำหนักบรรทุกของข้อความ / เหตุการณ์ที่องค์ประกอบของฉันได้รับหรือส่ง
I - ส่วนหัวของข้อความ / เหตุการณ์ใด ๆ ที่องค์ประกอบของฉันได้รับหรือส่งรวมถึงส่วนสำคัญใด ๆ ของส่วนของข้อมูลซึ่งมีความสำคัญต่อการทำงานของส่วนประกอบของฉัน
W - อะไรก็ตามที่เกิดขึ้นที่ผิดปกติหรือน่าสงสัย แต่ไม่จำเป็นต้องเป็นข้อผิดพลาด
E - ข้อผิดพลาดหมายถึงสิ่งที่ไม่ควรเกิดขึ้นเมื่อสิ่งต่าง ๆ ทำงานได้อย่างที่ควรจะเป็น
ความผิดพลาดที่ใหญ่ที่สุดที่ฉันเห็นคนทำคือพวกเขาใช้มากเกินไปเช่น V, D และฉัน แต่ไม่เคยใช้ W หรือ E หากมีข้อผิดพลาดตามคำจำกัดความไม่ควรเกิดขึ้นหรือควรเกิดขึ้นน้อยมาก ประหยัดสำหรับคุณที่จะบันทึกข้อความเมื่อมันเกิดขึ้น ในทางกลับกันถ้าทุกครั้งที่มีคนกดปุ่มที่คุณใช้ Log.i () คุณจะใช้ทรัพยากรการบันทึกที่ใช้ร่วมกันในทางที่ผิด แน่นอนใช้สามัญสำนึกและระมัดระวังบันทึกข้อผิดพลาดสำหรับสิ่งที่อยู่นอกเหนือการควบคุมของคุณ (เช่นข้อผิดพลาดเครือข่าย) หรือที่มีอยู่ในลูปแน่น
อาจจะไม่ดี
Log.i("I am here");
ดี
Log.e("I shouldn't be here");
เมื่อคำนึงถึงสิ่งนี้ยิ่งรหัสของคุณใกล้ถึง "พร้อมใช้การผลิต" ยิ่งคุณสามารถ จำกัด ระดับการบันทึกฐานสำหรับรหัสของคุณได้มากขึ้นเท่านั้น (คุณต้องการ V ในอัลฟ่า, D ในเบต้า, ฉันกำลังผลิตหรืออาจเป็น W ) คุณควรใช้กรณีการใช้งานง่าย ๆ และดูบันทึกเพื่อให้แน่ใจว่าคุณยังสามารถเข้าใจสิ่งที่เกิดขึ้นในขณะที่คุณใช้การกรองที่เข้มงวดมากขึ้น หากคุณใช้ตัวกรองด้านล่างคุณควรจะสามารถบอกได้ว่าแอปของคุณกำลังทำอะไรอยู่ แต่อาจไม่ได้รับรายละเอียดทั้งหมด
logcat -v threadtime MyApp:I *:S
Verbose
บันทึก มันเป็นสิ่งที่คุณใช้เมื่อคุณต้องการส่งออกการดำเนินการทางตรรกะทุกอย่าง