मैं CUE फ़ाइलों को पार्स करने के लिए एक बहुत अच्छी लाइब्रेरी में आया था। लेकिन जब मैं उसके स्रोत कोड को पढ़ने के लिए शुरू कर दिया, मुझे एहसास हुआ कि यह लगभग पढ़ने योग्य नहीं है:कैसे पता चलेगा कि बहुत अधिक लॉगिंग संदेश कब हैं?
public void setParent(final CueSheet parent) {
FileData.logger.entering(FileData.class.getCanonicalName(), "setParent(CueSheet)", parent);
this.parent = parent;
FileData.logger.exiting(FileData.class.getCanonicalName(), "setParent(CueSheet)");
}
हर विधि logger.entering है() और logger.exiting() संदेश। क्या वह इतना ज्यादा नहीं है?
ऑडियो टैग पार्स करने के लिए एक और जावा लाइब्रेरी है। इसे पढ़ने वाली प्रत्येक फ़ाइल के लिए 15 लॉग संदेश भी थे। यह परेशान था इसलिए मैंने लॉगर को हर कॉल पर टिप्पणी की। और लाइब्रेरी तेजी से दोगुनी हो गई, क्योंकि उन्होंने लॉग संदेशों के लिए बहुत सी स्ट्रिंग कॉन्सटेनेशन का इस्तेमाल किया।
तो सवाल यह है कि: क्या मुझे वास्तव में सब कुछ लॉग करना चाहिए, भले ही यह बड़ा उद्यम अनुप्रयोग न हो? क्योंकि इन पुस्तकालयों को स्पष्ट रूप से त्रुटि संदेशों को छोड़कर, किसी भी लॉगिंग की आवश्यकता नहीं है। और मेरा अनुभव दिखाता है कि लॉगर्स डिबगिंग के लिए भयानक उपकरण हैं। मुझे क्यों इसका उपयोग करना चाहिए?
लॉगिंग डीबगिंग के लिए एक शानदार उपकरण है! यह एक आवश्यक उपकरण है जब आपको किसी समस्या को हल करने की आवश्यकता होती है जिसे आप आसानी से पुन: उत्पन्न नहीं कर सकते हैं (या शायद बिल्कुल।) सभी समस्याओं को अच्छी तरह परिभाषित "त्रुटि" बिंदुओं पर नहीं होता है जहां आप इस तथ्य को लॉग कर सकते हैं कि कुछ गलत हो गया है, सभी विवरण के साथ। कभी-कभी अप्रत्याशित स्थानों में समस्याएं होती हैं, इसलिए आपके पास सभी विवरण लॉग इन करने के लिए त्रुटि हैंडलिंग कोड नहीं है; या वे असंगत स्थिति का परिणाम हैं और चीजें बस सही काम नहीं करती हैं। डोमेन के उदाहरण जहां यह मेरे अनुभव में महत्वपूर्ण हो सकता है: टेलीफ़ोनी सिस्टम एकीकरण, ईमेल प्रोसेसिंग। –
या जब आप एक बड़ी, वितरित प्रणाली से निपट रहे हैं। यदि आपके पास टाइमस्टैम्प के साथ लॉग नहीं हैं, तो आप भौतिक प्रणालियों में एक त्रुटि को कैसे ट्रैक करेंगे? – avgvstvs