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