เราใช้ไลบรารี่ที่แตกต่างกันทุกประเภทในการพัฒนาในแต่ละวัน บ่อยครั้ง (ถูกต้อง!) เป็นการส่งต่อเพื่อทำความเข้าใจว่ามันทำงานอย่างไร แต่การเข้าไปในห้องสมุดนั้นให้ผลตอบแทนโดยการเปิดเผยแนวคิดและลูกเล่นเล็กๆ น้อยๆ ที่เรายังไม่รู้ เพิ่มเข้าไปในคลังแสงเพื่อใช้ในการต่อสู้ในแต่ละวัน
การบันทึกเป็นวิธีที่ยอดเยี่ยมและง่ายดายในการแก้ไขข้อบกพร่องสิ่งที่เกิดขึ้นภายในแอปพลิเคชันของคุณ Android มีคลาส Log เพื่ออำนวยความสะดวกในการบันทึก แต่ส่วนที่น่ารำคาญคือ TAG ที่ต้องมีในทุกคำสั่งบันทึกที่คุณเขียน แม้ว่าสิ่งนี้จะทำให้ง่ายขึ้นโดยการสร้างค่าคงที่ แต่จะหลีกเลี่ยงมันได้อย่างไร
นี่คือที่มาของ ไม้ซุง
ฉันใช้ Timber มาระยะหนึ่งแล้ว สงสัยอยู่เสมอว่า Jake Wharton ดึงชื่อคลาสนั้นมาได้อย่างไร! ฉันก็เลยตัดสินใจค้นหามันด้วยตัวเอง
หลังจากการโคลนไลบรารีสำหรับ Github ฉันรู้สึกประหลาดใจเล็กน้อยที่พบว่าไลบรารีทั้งหมดเป็นเพียงคลาส ONE เท่านั้น
ใช่ ปล่อยให้มันจมลงไป
ตามที่ระบุไว้ใน Github Timber ทำหน้าที่เป็น wrapper ที่ด้านบนของ android ที่ให้คลาส Log
กลับมาที่วิธีการดึงชื่อคลาส...
และคำตอบก็คือ...
สแต็คเทรซ
การติดตามสแต็กคือรายการการเรียกเมธอดที่แอปพลิเคชันอยู่ในระหว่างการส่งข้อยกเว้นที่ไม่ถูกตรวจจับ
โดยปกติแล้ว เราใช้ StackTrace เพื่อแก้ไขข้อผิดพลาดและจุดบกพร่อง Jakeเช่นเคยใช้อย่างชาญฉลาดมากในการแก้ปัญหา TAG
การปฏิบัติตามเมธอด getTag() จะสร้างอ็อบเจ็กต์ Throwable ใหม่ และรับอาร์เรย์ StackTrace
องค์ประกอบที่ 6 (เช่น CALL_STACK_INDEX) ในอาร์เรย์คือคลาสที่เราสร้างบันทึก (Timber.d(“mind blood”);) จากนั้นเป็นเพียงงานส่วนเสริมในการเรียกชื่อคลาส.
แค่นั้นแหละ! ค่อนข้างตรงไปตรงมาใช่ไหม?
มีความสุขในการบันทึก!!