2010-08-25 22 views
23

Log4net için aynı yapılandırılmış iki projem var. Bir proje iyi kaydeder; ancak diğeri hiç oturum açmaz.log4net app.config dosyasından okunmaz

döner IsFatalEnabled = false, IsErrorEnabled = false, IsWarnEnabled = false, IsInforEnabled = false ve IsDebugEnabled = false günlüğü değildir projede Logger.

Bir projeden diğerine kopyalayıp yapıştırdım, dosyayı tamamen değiştirdim ve tüm boşlukları kaldırmaya çalıştım. Düzgün app.config doğru okuma düzeylerini gereken bir projeyi neden olabilecek ne

?

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"); 
    } 
} 

cevap

40

app.config dosya log4net tarafından izlenmesi için yapılandırılmamış yapıldığı anlaşılmaktadır.

Ben AssemblyInfo.cs aşağıdaki satırı eklendi ve günlük artık etkindir:

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

Garip, çalışıyordum projeye bu satırı ekleyin vermedi beri.

DÜZENLEME:

sonuçta çizgi var mı çalışıyordu projeye benziyor. Unutmuş olmalıyım.

// 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

Davam yaklaşık aynıydı - bu eksikti, Bahsettiğiniz sihirli çizgi yeni projede olmasına rağmen - ben başka proje için bir proje kopyalanmış ama benim yarar koduyla özel montaj Log4net "sarılmış" benim özel derlemem AssemblyInfo.cs (tüm yapılandırmanın giriş noktasını içeren montajda yapılması gerektiği izlenimi vardı - yanlış) –

+2

VB.NET uygulaması için bunu yapmak zorundaydım ... sözdizimi: