Di Log4J, Slf4J dan beberapa framework logging lainnya di Java, Anda memiliki dua level "developper" untuk logging:
- DEBUG
- JEJAK
Saya mengerti apa yang dilakukan DEBUG, karena penjelasannya jelas:
Level DEBUG menunjukkan peristiwa informasi berbutir halus yang paling berguna untuk men-debug aplikasi.
Tetapi tingkat TRACE tidak terlalu spesifik tentang kasus penggunaannya:
Level TRACE menunjuk acara informasi yang lebih halus daripada DEBUG
(Sumber: JavaDoc log4J )
Ini tidak memberi tahu saya bagaimana atau kapan menggunakan TRACE. Menariknya, ini bukan tingkat keparahan yang ditentukan dalam standar syslog . Googling untuk perbedaan antara TRACE dan DEBUG sepertinya hanya mengembalikan "gunakan DEBUG, oh, dan ada TRACE juga". Saya tidak dapat menemukan kasus penggunaan khusus untuk tingkat TRACE. Yang terbaik yang bisa saya temukan adalah halaman wiki lama ini memperdebatkan manfaat keberadaan level tersebut.
Ini, sebagai seorang arsitek, memunculkan banyak bendera dan pertanyaan di kepala saya. Jika seorang pengembang muda meminta saya untuk menambahkan TRACE ke arsitektur saya, saya akan membombardir dia dengan pertanyaan:
- Apa saja contoh informasi yang harus dicatat dengan TRACE dan bukan dengan DEBUG?
- Masalah spesifik apa yang saya selesaikan dengan mencatat informasi itu?
- Dalam contoh-contoh itu, apa saja properti dari informasi yang dicatat yang dengan jelas membedakan antara pencatatan di tingkat TRACE dan bukan pada tingkat DEBUG?
- Mengapa informasi itu harus melalui infrastruktur log?
- Apa manfaat dari mempertahankan informasi itu dalam jurnal log daripada hanya menggunakan
System.out.println
? - Mengapa lebih baik menggunakan log untuk ini daripada debugger?
- Apa manfaat dari mempertahankan informasi itu dalam jurnal log daripada hanya menggunakan
- Apa yang akan menjadi contoh kanonik dari penebangan di tingkat TRACE?
- Apa keuntungan spesifik yang telah dibuat dengan masuk pada tingkat TRACE dan bukannya DEBUG dalam contoh?
- Mengapa keuntungan itu penting?
- Secara terbalik: Masalah apa yang saya hindari dengan mencatatnya di TRACE bukannya DEBUG?
- Bagaimana lagi saya bisa menyelesaikan masalah itu? Mengapa masuk pada tingkat TRACE lebih baik daripada solusi lainnya?
- Haruskah pernyataan log tingkat TRACE dibiarkan dalam kode produksi? Mengapa?
Tetapi mengingat bahwa ia hadir dalam sebagian besar kerangka kerja utama, saya kira itu berguna untuk sesuatu? Jadi ... untuk apa TRACE, dan apa yang membedakannya dari DEBUG?