2009-11-16 71 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

相关问题