Log4J, Slf4J ve Java'daki diğer birkaç günlük kaydı çerçevesinde, günlük kaydı için iki "geliştirici" seviyeniz vardır:
- DEBUG
- İZ, İŞARET, İPUCU
DEBUG'ın ne yaptığını anlıyorum, çünkü açıklama açıktır:
DEBUG Seviyesi, bir uygulamanın hatalarını ayıklamak için en faydalı olan ince taneli bilgi olaylarını belirler.
Ancak TRACE seviyesi kullanım durumu hakkında çok spesifik değil:
TRACE Seviyesi, DEBUG’dan daha ince taneli bilgilendirme olayları belirler
(Kaynak: log4J JavaDoc )
Bu bana ne zaman ve ne zaman TRACE kullanacağımı söylemez. İlginçtir ki, bu syslog standardında tanımlanan bir önem seviyesi değildir . TRACE ve DEBUG arasındaki farkın googlingi yalnızca “DEBUG kullanın, oh ve TRACE de var” gibi görünüyor. TRACE seviyesi için belirli bir kullanım örneği bulamadım. Bulabildiğim en iyi şey , seviyenin varlığının değerini tartışan bu eski wiki sayfasıydı .
Bu, bir mimar olarak, kafamda birçok bayrak ve soru yükseltir. Genç bir geliştirici benden mimarisine TRACE'i eklememi istedi, onu sorularla bombalardım:
- DEBUG ile değil, TRACE ile kaydedilmesi gereken bazı bilgi örnekleri nelerdir?
- Bu bilgileri günlüğe kaydederek hangi sorunu çözerim?
- Bu örneklerde, DEBUG seviyesinden ziyade TRACE seviyesindeki loglama arasında açıkça ayırım yapan kayıtlı bilgilerin özellikleri nelerdir?
- Bu bilgi neden log altyapısından geçmeli?
- Bu bilgiyi bir günlükler dergisinde sadece kullanmak yerine sürdürmeye devam etmenin faydaları nelerdir
System.out.println
? - Neden bunun için bir hata ayıklayıcı yerine günlük kullanmak daha iyi?
- Bu bilgiyi bir günlükler dergisinde sadece kullanmak yerine sürdürmeye devam etmenin faydaları nelerdir
- TRACE düzeyinde logonun kanonik bir örneği ne olabilir?
- Örnekte DEBUG yerine TRACE seviyesine giriş yaparak elde edilen spesifik kazançlar nelerdir?
- Bunlar neden önemli?
- Tersi: DEBUG yerine TRACE'e giriş yaparak hangi sorunları çözdüm?
- Bu sorunları başka nasıl çözebilirim? Niçin TRACE seviyesinde giriş yapmak diğer çözümlerden daha iyidir?
- Üretim kodunda TRACE seviye log ifadesi bırakılmalı mı? Neden?
Ancak en büyük çerçevede bulunduğu göz önüne alındığında, bunun bir şeyler için faydalı olduğunu tahmin ediyorum? Öyleyse ... TRACE ne için ve onu DEBUG'dan ayıran nedir?