कुछ लोग log4net के बजाय ELMAH का उपयोग कर रहे हैं । क्या यह बेहतर बनाता है?
स्टैक ओवरफ्लो प्रश्न के उत्तर में मुझे ईएलएमएएच के बारे में पता चला कि मैं सी # में लॉगिंग कैसे करूं?
कुछ लोग log4net के बजाय ELMAH का उपयोग कर रहे हैं । क्या यह बेहतर बनाता है?
स्टैक ओवरफ्लो प्रश्न के उत्तर में मुझे ईएलएमएएच के बारे में पता चला कि मैं सी # में लॉगिंग कैसे करूं?
जवाबों:
ELMAH आपके वेब अनुप्रयोगों के लिए त्रुटियों और अपवादों पर नज़र रखने का एक उद्देश्य देता है और आपको कई अलग-अलग तंत्रों (SQL, RSS, Twitter, फ़ाइलें, ईमेल, आदि) के माध्यम से उन अपवादों को आसानी से लॉग या देखने देता है। यदि आपके पास कोई अंतर्निहित अपवाद नहीं है, तो ELMAH आपको वेब एप्लिकेशन वातावरण में अपवाद हैंडलिंग के संदर्भ में जो कुछ भी मिल रहा है, वह आपको सबसे अधिक मिलेगा।
Log4net का उपयोग अपवाद लॉगिंग के लिए भी किया जा सकता है, हालांकि आपको अपने वेब एप्लिकेशन में प्लग करने के लिए अपने हैंडलर को रोल करना होगा। Log4net ELMAH पर चमक जाएगा यदि आपको अन्य प्रकार की जानकारी लॉगिंग करने की आवश्यकता है क्योंकि log4net एक सामान्य प्रयोजन लॉगिंग फ्रेमवर्क है। Log4net का उपयोग लगभग किसी भी .NET अनुप्रयोग में किया जा सकता है।
Log4Net एक सामान्य प्रयोजन लॉगिंग फ्रेमवर्क है जिसका एपीआई आपके एप्लिकेशन (वेब, कंसोल, डीएलई, आदि) के भीतर उपयोग करने के लिए है।
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
एएलएमएएच एक विनीत आईआईएस प्लगइन है जो विशेष रूप से एक वेब एप्लिकेशन में अपवाद लॉगिंग के लिए है । आपको अपने एप्लिकेशन के भीतर ELMAH का संदर्भ नहीं दिखाई देगा, इसमें ऐसा API नहीं है जिसे आप इंटर करते हैं। यह व्यवहार में बोल्ट करने के लिए मॉड्यूल और हैंडलर IIS एक्सटेंशन पॉइंट का उपयोग करता है। इसके अलावा इसमें आपके वेब एप्लिकेशन में हुई त्रुटियों को देखने के लिए एक वेब फ्रंट-एंड है। Log4Net में फ्रंट-एंड नहीं है, बस विभिन्न प्रकार के लॉग सिंक (एपेंडर्स) हैं जो लॉग फाइल, एक syslog सर्वर, एक डेटाबेस, आदि जैसी चीजों के लिए आपके लॉग संदेश भेज सकते हैं।
महत्वपूर्ण अंतर यह है कि ईएलएमएएच अनहेल्ड एप्लिकेशन अपवादों को लॉग करता है; log4net जो भी आप इसे लॉग करने के लिए कहते हैं वह लॉग करता है। आप लॉग्डनेट को लॉग इन अनहैंड किए गए अपवादों को कॉन्फ़िगर करने के लिए कॉन्फ़िगर कर सकते हैं, लेकिन ELMAH बॉक्स से बाहर उपयोगी जानकारी का खजाना प्राप्त करता है।
ELMAH एक HTTP मॉड्यूल बनाकर काम करता है जो त्रुटि घटनाओं में हुक करता है और फिर लॉगिंग करता है। यह आसानी से खराब डिजाइन द्वारा विफल और टूट सकता है। Log4Net को अतिरिक्त काम की आवश्यकता हो सकती है, लेकिन यदि आप AOP फ्रेमवर्क का उपयोग करते हैं और इसे अपनी कक्षा या विधानसभा में भी लागू करते हैं, तो आप बहुत कम कोड और प्रयास के साथ बेहतर अपवाद लॉगिंग प्राप्त कर सकते हैं।
ELMAH केवल तभी काम करता है जब उसके पास HttpContext की पहुंच होती है जो WCF सेवाओं में प्राप्त करना कठिन हो सकता है। तो तुम वैसे भी WCF में कुछ अन्य लकड़हारा का उपयोग कर समाप्त होगा। केवल एक समाधान का उपयोग क्यों न करें जो अधिक सार्वभौमिक है।
ELMAH का उपयोग विशेष रूप से वेब अनुप्रयोगों के लिए किया जाता है, जबकि log4net का उपयोग वेब और विंडोज दोनों अनुप्रयोगों पर किया जाता है। ELMAH के पास वेब एप्लिकेशन में log4net की तुलना में कई अधिक फायदे हैं।