2010-08-25 19 views
23

से नहीं पढ़ा जाएगा मेरे पास log4net के लिए समान रूप से दो प्रोजेक्ट कॉन्फ़िगर किए गए हैं। एक परियोजना ठीक ठीक है; हालांकि, दूसरा बिल्कुल लॉग इन नहीं करता है।log4net app.config

Logger परियोजना है कि रिटर्न IsFatalEnabled = false, IsErrorEnabled = false, IsWarnEnabled = false, IsInforEnabled = false और IsDebugEnabled = false प्रवेश करने नहीं है।

मैंने एक प्रोजेक्ट से दूसरे प्रोजेक्ट की प्रतिलिपि बनाई है और चिपकाया है, फ़ाइल को पूरी तरह से बदल दिया है और सभी व्हाइटस्पेस को हटाने का प्रयास किया है।

क्या एक परियोजना ऐप.कॉन्फिग से सही स्तर को ठीक से नहीं पढ़ा जा सकता है?

app.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
     <file value="logfile.txt" /> 
     <appendToFile value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date: %-5level – %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    </log4net> 
</configuration> 

Program.cs

using log4net; 

class Program 
{ 
    private static readonly ILog Log = LogManager.GetLogger("SO"); 

    static void Main(string[] args) 
    { 
     Log.Info("SO starting"); 
    } 
} 

उत्तर

40

ऐसा लगता है कि app.config फ़ाइल log4net द्वारा देखे जाने के लिए कॉन्फ़िगर नहीं किया गया था।

मैं AssemblyInfo.cs में निम्नलिखित पंक्ति जोड़ लिया है और प्रवेश अब सक्षम है:

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

अजीब, के बाद से मैं परियोजना है कि काम कर रहा था करने के लिए इस लाइन में नहीं जोड़ा।

संपादित करें:

परियोजना है कि काम कर रहा था था कि सब के बाद रेखा है की तरह लग रहा। मुझे भूल जाना चाहिए था।

// This will cause log4net to look for a configuration file 
// called [ThisApp].exe.config in the application base 
// directory (i.e. the directory containing [ThisApp].exe) 
// The config file will be watched for changes. 
[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
+2

मेरे मामले लगभग एक ही था - मैं एक अन्य परियोजना के लिए एक परियोजना की नकल की है, लेकिन कस्टम विधानसभा में log4net "लिपटे" मेरी उपयोगिता कोड के साथ - हालांकि जादू लाइन आप का उल्लेख नई परियोजना में था, यह से लापता था मेरी कस्टम असेंबली की AssemblyInfo.cs (मुझे यह धारणा थी कि सभी कॉन्फ़िगरेशन को उस प्रविष्टि में किया जाना था जिसमें प्रविष्टि बिंदु - गलत था) –

+2

मुझे इसे VB.NET एप्लिकेशन के लिए करना था ... वाक्यविन्यास: <असेंबली: log4net .Config.XmlConfigurator (देखें: = सत्य)> –