मेरे अनुभव में, log4net आमतौर पर किसी भी आंतरिक त्रुटि को निगलता है, जिसके परिणामस्वरूप केवल लॉग स्टेटमेंट होते हैं जो कोई परिणाम नहीं देते हैं।
आप जो प्रयास करना चाहते हैं वह log4net की आंतरिक लॉगिंग को सक्षम करना है। आप निम्न को अपनी appSettings
. में जोड़कर ऐसा कर सकते हैं अनुभाग:
<add key="log4net.Internal.Debug" value="true" />
यह गुण सेट करता है LogLog.InternalDebugging
करने के लिए true
. log4net अब मानक आउटपुट और त्रुटि स्ट्रीम और कॉन्फ़िगर किए गए ट्रेस श्रोताओं में लॉग इन करेगा।
आप निम्न कॉन्फ़िगरेशन का उपयोग कर सकते हैं ट्रेसिंग में लॉग किए गए किसी भी संदेश को कैप्चर करने के लिए:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
log4net द्वारा आंतरिक रूप से लॉग किए गए सभी संदेश TextWriterOutput.log
में दिखाई देंगे . अगर आपको SecurityException
मिलता है जब आप अपने कॉन्फ़िगरेशन में ट्रेस श्रोता जोड़ते हैं, तो संभवतः ऐपपूल पहचान के पास निर्दिष्ट स्थान पर फ़ाइल बनाने के लिए पर्याप्त अधिकार नहीं होते हैं (उदाहरण में:c:\
) कोई अन्य स्थान आज़माएं या ऐपपूल पहचान को पर्याप्त अधिकार दें।