2012-07-19 18 views
6

से आउटपुट लॉग आउट करने के लिए Log4Net सेट अप करना मैं एक असेंबली में टेक्स्ट फ़ाइल पर लॉग इन करने के लिए Log4Net (यह मेरा पहला समय Log4Net) सेट करने का प्रयास कर रहा हूं। मुझे कोई त्रुटि नहीं मिल रही है, लेकिन यह भी काम नहीं कर रहा है। मैं उन लाइनों को तोड़ सकता हूं जहां मैं अपना आउटपुट लॉगिंग कर रहा हूं और देखता हूं कि वे पहुंचे हैं, लेकिन जैसा कि मैंने कहा कि कुछ भी नहीं होता है।क्लास लाइब्रेरी

मैं गलत कहां जा रहा हूं?

मैं अपने packages.config फ़ाइल में निम्न को शामिल किया है <packages> विशेषता के अंदर:

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net"> 
     <file value="c:\CTI\log.txt" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
     </layout> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO" /> 
     <levelMax value="FATAL" /> 
     </filter> 
    </appender> 

    <root> 
     <level value="DEBUG"/> 
     <appender-ref ref="FileAppender"/> 
    </root> 
    </log4net> 
</configuration> 

मैं AssemblyInfo.cs में निम्नलिखित पंक्ति जोड़ लिया है:

[assembly: log4net.Config.XmlConfigurator(Watch=true)] 

मैं NuGet और का उपयोग कर log4net विधानसभा जोड़ा मैं इस तरह लॉगिंग कर रहा हूं:

private log4net.ILog _Log; 
_Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
_Log.Debug("FooBar"); 

जैसा कि मैंने कहा, कोई त्रुटि नहीं है लेकिन कुछ भी नहीं होता है।

मुझे क्या याद आ रही है?

उत्तर

6

गलत बात यह है कि आप लॉग 4नेट कॉन्फ़िगरेशन अनुभाग को nuget कॉन्फ़िगरेशन फ़ाइल (packages.config) में जोड़ रहे हैं।

आपके पास ऐप/वेब कॉन्फ़िगरेशन में कॉन्फ़िगरेशन हो सकता है या एक अलग फ़ाइल में जिसे आप ऐप सेटिंग्स से इंगित करते हैं, उदा। विन्यास config.log4net कहा जाता है (फ़ाइल का copy to output directory विशेषता copy always पर सेट है) एक फ़ाइल में है और आप एप्लिकेशन/web.config में निम्नलिखित प्रविष्टि जोड़ने:

<add key="log4net.config" value="config.log4net"/> 

आप एक पर निर्भर नहीं करना चाहते हैं वेब/एप्लिकेशन विन्यास, आप AssemblyInfo.cs में XmlConfiguratorAttribute विशेषता का ConfigFileExtension गुण सेट कर सकते हैं:

[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "log4net", Watch = true)] 

फिर log4net विन्यास फाइल अपने exe/विधानसभा के साथ साथ कॉन्फ़िगर किया गया विस्तार, जैसे के रूप में ही नाम MyApplication.exe.log4net या MyLibrary.dll.log4net

एक और चीज जो गलत है आपका एपेंडर फ़िल्टर है। आपके द्वारा सेट की गई सीमा DEBUG स्तर को बहिष्कृत करती है, जिसे आप लॉग इन करने की अपेक्षा करते हैं।

ALL 
DEBUG 
INFO 
WARN 
ERROR 
FATAL 
OFF 

आप देख सकते हैं, DEBUGINFO और FATAL के बीच नहीं है: यहाँ सब logging levels हैं।

संबंधित मुद्दे