मैं एक कंपनी में डेवलपर हूं, जिसके उत्पाद विदेशों में तैनात हैं। जब एक समर्थन टीम समस्या की परिभाषा के बारे में पूछती है, तो निदान के लिए मेरा एकमात्र उपकरण मेरी लॉग फाइलें और ग्राहक के डेटाबेस की एक प्रति है। डेटाबेस और मेरे विकास के वातावरण का उपयोग करते हुए, मेरे पास गलत मामले को पुन: पेश करने का अवसर है, क्योंकि मैं अपने मॉड्यूल और संबंधित कार्यों के लिए आने वाले डेटा को लॉग करता हूं। यदि मैं एकत्रित किए गए डेटा की मदद से त्रुटि को पुन: उत्पन्न कर सकता हूं, तो मैं इसे डीबगिंग के साथ ठीक कर सकता हूं। अगर मेरे पास कोई लॉग फाइल नहीं थी, तो मुझे ग्राहक या सपोर्ट टीम के विवरण पर निर्भर रहना होगा कि किस स्थिति में क्या होता है (जिसमें भ्रामक होने का एक बड़ा मौका है)।
दूसरे, लॉगिंग मुझे तैनात जगह पर मेरे मॉड्यूल की बाधाओं का पता लगाने का मौका देती है, क्योंकि मैं कुछ कार्यों की तारीख और समय लॉग करता हूं और फिर मैं देख सकता हूं कि किस कार्रवाई में कितना समय लगता है।
इसके अलावा, मान लीजिए कि हमारे समाधान में 6 मॉड्यूल हैं और मैं डेटाबेस लॉगआउट के बारे में अपनी लॉग फ़ाइलों में त्रुटि लॉग देख रहा हूं। यदि इन त्रुटियों को 5 अन्य मॉड्यूल में भी लॉग इन किया जाता है, तो संभावना है कि यह SQL सर्वर से संबंधित समस्या बड़ी हो जाती है। यदि यह केवल मेरे मॉड्यूल में लॉग इन किया जाता है, तो मेरी क्वेरी छोटी होने की संभावना अधिक हो जाती है। मुझे लगता है कि इस प्रकार की चीजें उपयोगी संकेतक हैं।
अपनी लॉग फ़ाइलों में मुझे किस प्रकार का डेटा दिखाई देता है, यह लॉग स्तर के कॉन्फ़िगरेशन पर निर्भर करता है। यदि यह एक नया उत्पाद है, तो हम जितना संभव हो उतना डेटा एकत्र करने के लिए लॉग स्तर "सभी" पर सेट करते हैं। लेकिन जब हम उत्पाद में सुधार करते हैं, तो हम केवल त्रुटि को लॉग करने के लिए "त्रुटि" पर लॉग स्तर को रखना पसंद कर सकते हैं, लेकिन सूचना के स्तर को लॉग करने के लिए नहीं, आदि ...