ใน Log4J, Slf4J และเฟรมเวิร์กการบันทึกอื่น ๆ อีกสองสามรายการใน Java คุณมีระดับ "developper" สองระดับสำหรับการบันทึก:
- DEBUG
- ติดตาม
ฉันเข้าใจสิ่งที่ DEBUG ทำเพราะคำอธิบายนั้นชัดเจน:
ระดับ DEBUG กำหนดเหตุการณ์ข้อมูลที่ละเอียดซึ่งมีประโยชน์มากที่สุดในการดีบักแอปพลิเคชัน
แต่ระดับ TRACE นั้นไม่เฉพาะเจาะจงมากเกี่ยวกับกรณีการใช้งาน:
ระดับ TRACE กำหนดเหตุการณ์ข้อมูลที่ละเอียดกว่า DEBUG
(ที่มา: log4J JavaDoc )
สิ่งนี้ไม่ได้บอกวิธีการใช้ TRACE ที่น่าสนใจนี้ไม่ได้เป็นระดับความรุนแรงที่กำหนดไว้ในมาตรฐาน syslog Googling สำหรับความแตกต่างระหว่าง TRACE และ DEBUG ดูเหมือนจะกลับมา "ใช้ DEBUG, โอ้และมี TRACE ด้วย" ฉันไม่พบกรณีการใช้งานเฉพาะสำหรับระดับ TRACE สิ่งที่ดีที่สุดที่ฉันสามารถหาได้คือหน้าวิกิเก่านี้กำลังถกกันถึงข้อดีของการมีอยู่
ในฐานะสถาปนิกผู้นี้ได้ยกธงและคำถามมากมายในหัวของฉัน หากผู้พัฒนารายย่อยขอให้ฉันเพิ่ม TRACE ลงในสถาปัตยกรรมของฉันฉันจะทิ้งระเบิดด้วยคำถาม:
- ตัวอย่างของข้อมูลใดบ้างที่ควรบันทึกด้วย TRACE และไม่ใช่ DEBUG
- ฉันต้องแก้ไขปัญหาใดโดยการบันทึกข้อมูลนั้น
- ในตัวอย่างเหล่านั้นคุณสมบัติของข้อมูลที่บันทึกซึ่งแยกแยะได้อย่างชัดเจนระหว่างการบันทึกในระดับ TRACE แทนที่จะเป็นระดับ DEBUG คืออะไร
- ทำไมข้อมูลนั้นต้องผ่านโครงสร้างพื้นฐานบันทึก
- ประโยชน์ของการเก็บข้อมูลไว้ในสมุดบันทึกไม่ใช่การใช้เพียง
System.out.println
ใด? - เหตุใดจึงดีกว่าที่จะใช้บันทึกสำหรับสิ่งนี้แทนที่จะเป็นดีบักเกอร์
- ประโยชน์ของการเก็บข้อมูลไว้ในสมุดบันทึกไม่ใช่การใช้เพียง
- อะไรคือตัวอย่างที่ยอมรับได้ของการบันทึกในระดับ TRACE
- อะไรคือผลประโยชน์เฉพาะที่เกิดขึ้นจากการเข้าสู่ระบบที่ระดับ TRACE แทนที่จะเป็น DEBUG ในตัวอย่าง
- ทำไมสิ่งเหล่านั้นถึงสำคัญ?
- ในทางกลับกัน: ฉันควรหลีกเลี่ยงปัญหาอะไรบ้างในการเข้าสู่ระบบที่ TRACE แทนที่จะเป็น DEBUG
- ฉันจะแก้ไขปัญหาเหล่านั้นได้อย่างไร ทำไมการเข้าสู่ระบบในระดับ TRACE จึงดีกว่าโซลูชันอื่น ๆ
- ควรบันทึกคำสั่งบันทึกระดับ TRACE ไว้ในรหัสการผลิตหรือไม่ ทำไม?
แต่เนื่องจากมันมีอยู่ในกรอบงานที่สำคัญที่สุดฉันคิดว่ามันมีประโยชน์สำหรับบางสิ่งบางอย่าง? ดังนั้น ... TRACE สำหรับอะไรและอะไรที่แตกต่างจาก DEBUG