Log4J, Slf4J और जावा में कुछ अन्य लॉगिंग फ्रेमवर्क में, आपके पास लॉगिंग के लिए दो "डेवलपपर" स्तर हैं:
- डीबग
- ट्रेस
मैं समझता हूं कि DEBUG क्या करता है, क्योंकि स्पष्टीकरण स्पष्ट है:
DEBUG स्तर ठीक-ठीक सूचनात्मक घटनाओं को नामित करता है जो किसी एप्लिकेशन को डीबग करने के लिए सबसे उपयोगी होते हैं।
लेकिन इसके उपयोग के मामले के बारे में TRACE का स्तर बहुत विशिष्ट नहीं है:
TRACE Level DEBUG की तुलना में बारीक-बारीक सूचनात्मक घटनाओं को नामित करता है
(स्रोत: log4J JavaDoc )
यह मुझे नहीं बताता कि कैसे या कब TRACE का उपयोग करना है। दिलचस्प बात यह है कि, यह एक गंभीरता स्तर नहीं है जो कि syslog मानक में परिभाषित किया गया है । TRACE और DEBUG के बीच अंतर के लिए गुगली केवल "DEBUG, ओह का उपयोग करें, और TRACE भी है" वापस आती है। मुझे TRACE के स्तर के लिए एक विशिष्ट उपयोग का मामला नहीं मिला। सबसे अच्छा मैं पा सकता था यह स्तर के अस्तित्व की योग्यता पर बहस करने वाला पुराना विकी पृष्ठ था ।
यह, एक वास्तुकार के रूप में, मेरे सिर में बहुत सारे झंडे और सवाल उठाता है। यदि एक युवा डेवलपर ने मुझे अपनी वास्तुकला में TRACE जोड़ने के लिए कहा, तो मैं उसे सवालों के साथ बमबारी करूंगा:
- जानकारी के कुछ उदाहरण हैं जिन्हें TRACE के साथ लॉग किया जाना चाहिए और DEBUG के साथ नहीं होना चाहिए?
- उस जानकारी को लॉग करके मैं किस विशिष्ट समस्या का समाधान करूं?
- उन उदाहरणों में, लॉग की गई जानकारी के गुण क्या हैं जो स्पष्ट रूप से DEASUG स्तर के बजाय TRACE के स्तर पर लॉगिंग के बीच भेदभाव करते हैं?
- लॉग इंफ्रास्ट्रक्चर के माध्यम से उस जानकारी को क्यों जाना चाहिए?
- केवल उपयोग करने के बजाय एक लॉग पत्रिकाओं में उस जानकारी को बनाए रखने के क्या लाभ हैं
System.out.println
? - डिबगर के बजाय इसके लिए लॉग का उपयोग करना बेहतर क्यों है?
- केवल उपयोग करने के बजाय एक लॉग पत्रिकाओं में उस जानकारी को बनाए रखने के क्या लाभ हैं
- TRACE के स्तर पर लॉगिंग का एक विहित उदाहरण क्या होगा?
- उदाहरण में DEBUG के बजाय TRACE के स्तर पर प्रवेश करके क्या विशिष्ट लाभ अर्जित किए गए हैं?
- वे लाभ महत्वपूर्ण क्यों हैं?
- रिवर्स में: मुझे DEBUG के बजाय TRACE पर लॉग इन करके किन समस्याओं से बचना था?
- मैं उन समस्याओं को कैसे हल कर सकता हूं? उन अन्य समाधानों की तुलना में TRACE के स्तर पर प्रवेश क्यों बेहतर है?
- क्या उत्पादन कोड में TRACE स्तर का लॉग स्टेटमेंट छोड़ा जाना चाहिए? क्यों?
लेकिन यह देखते हुए कि यह सबसे प्रमुख ढांचे में मौजूद है, मुझे लगता है कि यह कुछ के लिए उपयोगी है? तो ... क्या TRACE के लिए है, और क्या यह DEBUG से अलग करता है?