เราใช้ไลบรารี่ที่แตกต่างกันทุกประเภทในการพัฒนาในแต่ละวัน บ่อยครั้ง (ถูกต้อง!) เป็นการส่งต่อเพื่อทำความเข้าใจว่ามันทำงานอย่างไร แต่การเข้าไปในห้องสมุดนั้นให้ผลตอบแทนโดยการเปิดเผยแนวคิดและลูกเล่นเล็กๆ น้อยๆ ที่เรายังไม่รู้ เพิ่มเข้าไปในคลังแสงเพื่อใช้ในการต่อสู้ในแต่ละวัน

การบันทึกเป็นวิธีที่ยอดเยี่ยมและง่ายดายในการแก้ไขข้อบกพร่องสิ่งที่เกิดขึ้นภายในแอปพลิเคชันของคุณ 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”);) จากนั้นเป็นเพียงงานส่วนเสริมในการเรียกชื่อคลาส.

แค่นั้นแหละ! ค่อนข้างตรงไปตรงมาใช่ไหม?

มีความสุขในการบันทึก!!