बीच क्या अंतर है logger.debug
औरlogger.info
?
कब logger.debug
छपेगा?
बीच क्या अंतर है logger.debug
औरlogger.info
?
कब logger.debug
छपेगा?
जवाबों:
यह लॉगिंग कॉन्फ़िगरेशन पर निर्भर करेगा। डिफ़ॉल्ट मूल्य उपयोग किए जा रहे ढांचे पर निर्भर करेगा। यह विचार यह है कि बाद में INFO से DEBUG तक कॉन्फ़िगरेशन सेटिंग को बदलकर आप पूरे आवेदन को फिर से देखे बिना मुद्रित की गई एक टन अधिक (या यदि अन्य तरह से) लाइनों को देखेंगे।
यदि आप सोचते हैं कि कौन सा उपयोग करना है तो यह सोचकर उबलता है कि आप किस स्तर पर देखना चाहते हैं। लॉग 4 जे में उदाहरण के लिए अन्य स्तरों के लिए एपीआई, http://log.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html देखें
मेरा सुझाव है कि आप "लघु परिचय log4j" नामक लेख देखें । इसमें लॉग स्तर की एक छोटी व्याख्या है और यह दर्शाता है कि उन्हें अभ्यास में कैसे इस्तेमाल किया जा सकता है। लॉग स्तर का मूल विचार यह है कि आप कॉन्फ़िगर करना चाहते हैं कि स्थिति के आधार पर लॉग में कितना विस्तार है। उदाहरण के लिए, यदि आप किसी समस्या का निवारण करने का प्रयास कर रहे हैं, तो आप चाहेंगे कि लॉग बहुत ही क्रियात्मक हों। उत्पादन में, आप केवल चेतावनी और त्रुटियां देखना चाहते हैं।
आपके सिस्टम के प्रत्येक घटक के लिए लॉग स्तर आमतौर पर एक कॉन्फ़िगरेशन फ़ाइल में एक पैरामीटर के माध्यम से नियंत्रित किया जाता है, इसलिए इसे बदलना आसान है। आपके कोड में विभिन्न स्तरों के साथ विभिन्न लॉगिंग स्टेटमेंट होंगे। जब जवाब में Exception
, आप कॉल कर सकते हैं Logger.error
। यदि आप किसी भी बिंदु पर एक चर के मूल्य को प्रिंट करना चाहते हैं, तो आप कॉल कर सकते हैं Logger.debug
। आपके प्रोग्राम के भीतर एक कॉन्फ़िगर करने योग्य लॉगिंग स्तर और लॉगिंग स्टेटमेंट का यह संयोजन आपको इस बात पर पूर्ण नियंत्रण की अनुमति देता है कि आपका एप्लिकेशन इसकी गतिविधि को कैसे लॉग करेगा।
Log4j के मामले में कम से कम, लॉग स्तरों का क्रम है:
DEBUG < INFO < WARN < ERROR < FATAL
यहाँ उस लेख से एक छोटा उदाहरण दिया गया है जिसमें दिखाया गया है कि लॉग स्तर कैसे काम करता है।
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");
// Now set its level. Normally you do not need to set the
// level of a logger programmatically. This is usually done
// in configuration files.
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
// This request is enabled, because WARN >= INFO.
logger.warn("Low fuel level.");
// This request is disabled, because DEBUG < INFO.
logger.debug("Starting search for nearest gas station.");
// The logger instance barlogger, named "com.foo.Bar",
// will inherit its level from the logger named
// "com.foo" Thus, the following request is enabled
// because INFO >= INFO.
barlogger.info("Located nearest gas station.");
// This request is disabled, because DEBUG < INFO.
barlogger.debug("Exiting gas station search");
If you want to print the value of a variable at any given point, you might call Logger.debug
मुझे उस भ्रम को स्पष्ट करने में मदद मिली जो मेरे बीच Debug
और Trace
स्तर पर था। धन्यवाद!
सभी संभावित स्तरों के सेट के बारे में एक स्पष्टीकरण, जो हैं:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
मूल रूप से यह इस बात पर निर्भर करता है कि आपके लोग कैसे कॉन्फ़िगर किए जाते हैं। आमतौर पर आपके पास विकास के दौरान डिबग आउटपुट लिखा होता है, लेकिन उत्पादन में बंद हो जाता है - या संभवतः किसी विशेष क्षेत्र में डिबगिंग करते समय डिबग श्रेणियों का चयन करना होता है।
अलग-अलग प्राथमिकताएं होने का मतलब है कि आप किसी विशेष घटक पर विस्तार के स्तर को यथोचित रूप से बारीक-बारीक तरीके से बारी-बारी से बदल सकते हैं - और केवल अंतर को देखने के लिए लॉगिंग कॉन्फ़िगरेशन (कोड के बजाय) को बदलने की आवश्यकता है।
यह एक बहुत पुराना प्रश्न है, लेकिन मैं अपनी समझ यहाँ नहीं देखता हूँ इसलिए मैं अपने 2 सेंट जोड़ूंगा:
प्रत्येक स्तर उपयोगकर्ता के एक प्रकार के अनुरूप / मैप करता है:
Logger.debug और logger.info के बीच क्या अंतर है?
ये केवल कुछ डिफ़ॉल्ट स्तर पहले से ही परिभाषित हैं। आप चाहें तो अपने स्तर को परिभाषित कर सकते हैं। उन स्तरों का उद्देश्य आपके कोड में कोई बदलाव किए बिना उनमें से एक या अधिक को सक्षम / अक्षम करना है।
जब logger.debug छपेगा ??
जब आपने अपने कॉन्फ़िगरेशन में डीबग या किसी उच्च स्तर को सक्षम किया है।
यह निर्भर करता है कि आपने अपने लॉग 4 जे कॉन्फ़िगरेशन फ़ाइल में किस स्तर का चयन किया है।
<Loggers>
<Root level="info">
...
यदि आपका स्तर "जानकारी" (डिफ़ॉल्ट रूप से) है, logger.debug(...)
तो आपके कंसोल में मुद्रित नहीं किया जाएगा। हालांकि, यदि आपका स्तर "डिबग" है, तो यह होगा।
अपने कोड के महत्वपूर्ण स्तर के आधार पर, आपको निम्नलिखित में से सबसे सटीक स्तर का उपयोग करना चाहिए:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
Trace
।