2009-11-16 44 views
10

任何人都可以建議如何配置控制檯應用程序的log4net?log4net控制檯應用程序的配置

或至少如何/何處趕上Application_Start事件? (它接縫,目前需要一些電話)

在此先感謝!

回答

10

您需要在第一個記錄器實例化之前對其進行配置。

要做到這一點:

  • 主類(Program.cs中)不應該有一個記錄器

  • 主要方法不應引用有任何記錄器類。

  • 然後,您可以在主要方法中配置log4net。

或者您可以使用一個包裝類實例化記錄儀,確保log4net的是創建一個記錄器前配置,如:

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

嘗試在AssemblyInfo.cs

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

就是這樣!

+0

這應該做什麼?我似乎對我的情況沒有任何幫助。 – 2010-06-24 16:39:35

+0

它應該1)告訴log4net使用默認設置(app.config)配置自身2)當包含log4net條目的底層文件發生更改時,使log4net自動重新加載它的配置。 – 2011-08-30 09:30:48

+0

添加這條線適用於我。乾杯! – ysrb 2013-01-20 23:15:56

相關問題