सामान्य
- में आप दिनांक समय मान (प्रवेश चौखटे के टाइमस्टैम्प हेडर फील्ड बारे में बात नहीं) सुनिश्चित करें कि आप एक सार्थक प्रारूप में उन्हें लॉग ऑन कर लॉग इन करते हैं। "ToString()" आमतौर पर पर्याप्त नहीं है यदि आपको स्थानीय बनाम यूटीसी या मिलीसेकंड के बारे में जानकारी चाहिए (मैं "yyyy-MM-dd hH: mm: ss.fff zzz", YMMV)
- यदि आप अपवाद लॉग करते हैं, किसी और चीज के बजाय "ToString()" के लिए जाएं। विवादास्पद हो सकता है, लेकिन कारणों के लिए here देखें।
सेनस्टिव या विस्तृत जानकारी के बारे में, जैसा कि अन्य ने पहले ही कहा है, आपको देखना होगा। यह केवल उन लोगों के बारे में नहीं है जो आपके उत्पादन लॉग को आवश्यकतानुसार अधिक जानकारी प्राप्त करने के हकदार हैं, इस मामले के बारे में भी सोचें कि सिस्टम के किसी घुसपैठिए को अत्यधिक वर्बोज़ लॉग के लिए मूल्यवान जानकारी मिल सकती है (यही कारण है कि मैं एक सेट लॉग नहीं करता उपयोगकर्ताओं को त्रुटि के साथ अनुमतियां कि उन्हें कोई विशेष नहीं मिला है, किसी अन्य उत्तर में सुझाव दिया गया था)।
यह आपके पर्यावरण या ग्राहक पर निर्भर हो सकता है जो संवेदनशील माना जाता है, लेकिन उदाहरण हैं: - त्रुटि संदेशों में वास्तविक उपयोगकर्ता इनपुट। - उपयोगकर्ता अनुमति सेट, आदि - SQL कथन, विशेष रूप से वास्तविक मापदंडों साथ - एक्सएमएल अनुरोध/प्रतिक्रिया संरचनाओं
लॉग इन करने के बारे में जानकारी का सही विवरण के स्तर को ढूँढना हमेशा जानकारी की मात्रा लॉग इन बीच एक समंजन है, प्रदर्शन यह करने के लिए लागत केवल को लिखने, लेकिन यह भी नहीं इस जानकारी को कोड में और उस जानकारी की संवेदनशीलता का उत्पादन करें। और यही वजह है कि कोई भी गंभीर लॉगिंग सिस्टम "स्तर" या "श्रेणियां" खेलता है।
आप एक "स्तर" या "श्रेणी" है कि उत्पादन में विकास में लेकिन बंद पर स्विच किया जा सकता पर संभावित senstive लॉग जानकारी सकता है। यदि आप वास्तव में ओवरबोर्ड जाना चाहते हैं, तो आप एक EventLog प्रविष्टि लिख सकते हैं जब आपका एप्लिकेशन यह पता लगाता है कि इस तरह के लॉगिंग सक्षम है, इसलिए यह उत्पादन में "पर्ची" नहीं करता है।
अंत में, एक प्रवेश रूपरेखा है कि रनटाइम के दौरान उन स्तरों या श्रेणियों को बदलने की अनुमति देता है प्रयोग करने पर विचार। इस तरह, यदि आवश्यक हो तो आप अधिक जानकारी को सक्षम कर सकते हैं, बिना किसी तरीके से एप्लिकेशन के काम में बाधा डाले या किसी ऐसी स्थिति को रीसेट कर सकते हैं जिसे आप पहले एप्लिकेशन को पुनरारंभ करने की आवश्यकता से जांचना चाहते थे।
स्रोत
2010-02-10 06:49:04
यह भी देखें http://stackoverflow.com/questions/1902133/what-are-the-best-practices-for-including-logging-using-log4net –