2009-11-16 17 views
10

Czy ktoś może podpowiedzieć, jak skonfigurować log4net dla aplikacji konsolowej?Konfiguracja log4net dla aplikacji konsoli

Co najmniej, jak/gdzie złapać zdarzenie Application_Start? (To oznacza, że ​​niektóre połączenia są wymagane w tej chwili)

Z góry dziękuję!

Odpowiedz

10

Musisz go skonfigurować przed utworzeniem pierwszego rejestratora.

Aby to zrobić:

  • Twoim głównym klasa (Program.cs) nie powinny mieć rejestrator

  • Główną metodą nie powinny odwoływać żadnych klas, które mają rejestratora.

  • Następnie można skonfigurować log4net w metodzie głównej.

Alternatywnie można użyć klasy otoki do wystąpienia drewna, który zapewnia log4net jest skonfigurowany przed utworzeniem rejestratora, np:

static class Log4NetHelper 
{ 
    private static bool _isConfigured; 

    static void EnsureConfigured() 
    { 
     if (!_isConfigured) 
     { 
      ... configure log4net here ... 
      _isConfigured = true; 
     } 
    } 

    public static ILog GetLogger(string name) 
    { 
     EnsureConfigured(); 
     log4net.ILog logger = log4net.LogManager.GetLogger(name); 
     return logger; 
    } 
} 
13

Spróbuj napisać

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

w AssemblyInfo.cs

To wszystko!

+0

Co to ma zrobić? Nic nie pomagam w moim przypadku. –

+0

Powinien 1) nakazać serwerowi log4net skonfigurowanie się za pomocą ustawień domyślnych (app.config) 2) spowodować, aby log4net automatycznie przeładował konfigurację, gdy zmienia się plik bazowy zawierający wpis log4net. –

+0

Dodanie tej linii działa dla mnie. Twoje zdrowie! – ysrb