यह एक उत्कृष्ट सवाल है।
पहला कारण है "क्यों नहीं?" यदि आप लॉगिंग फ्रेमवर्क का उपयोग कर रहे हैं, तो आप पहले से पैक किए गए कुछ का उपयोग करने के रखरखाव लाभ काट लेंगे।
दूसरा कारण यह है कि लॉगिंग सूक्ष्म है।विभिन्न थ्रेड, सत्र, कक्षाएं और ऑब्जेक्ट इंस्टेंस लॉगिंग में सभी खेल सकते हैं, और आप फ्लाई पर इस समस्या को समझना नहीं चाहते हैं।
तीसरा कारण यह है कि आपको अपने कोड में प्रदर्शन बाधा मिल सकती है। यह पता लगाना कि आपका कोड धीमा है क्योंकि आप बफरिंग के बिना फ़ाइल में लिख रहे हैं या आपकी हार्ड ड्राइव डिस्क स्पेस से बाहर हो गई है क्योंकि लॉगर रोलओवर रोल नहीं करता है और पुरानी फाइलों को संपीड़ित करता है, गर्दन में दर्द हो सकता है।
चौथा कारण यह है कि आप syslog में जोड़ना चाहते हैं, या डेटाबेस, या सॉकेट या विभिन्न फ़ाइलों को लिखना चाहते हैं। फ्रेमवर्क में इस कार्यक्षमता का निर्माण किया गया है।
लेकिन वास्तव में, पहला जवाब सबसे अच्छा है; अपने आप को लिखने के लिए बहुत कम लाभ है, और दोषों का एक पूरा समूह है।
स्रोत
2008-09-28 00:43:31
"मस्तिष्क-मृत एक फ़ाइल में संलग्न करने के लिए सरल" - बनाम मल्टीथ्रेड और विशेष रूप से मल्टीकोर जहां थ्रेड वास्तव में एक साथ निष्पादित करते हैं? माइक्रोसॉफ्ट के ईटीडब्ल्यू ईटीडब्ल्यू-प्रविष्टियों के प्रति प्रोसेसर-बफरिंग प्रदान करता है, जो मुझे लगता है कि यह आदर्श समाधान है। – pngaz