log4net控制台应用程序的配置

时间:2009-11-16 13:03:58

标签: c# .net log4net application-start

有人可以建议如何为控制台应用配置log4net吗?

或者至少如何/在哪里捕获Application_Start事件? (此时此刻需要一些电话)

提前致谢!

2 个答案:

答案 0 :(得分:13)

尝试写作

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

中的

就是这样!

答案 1 :(得分:10)

您需要在实例化第一个记录器之前对其进行配置。

这样做:

  • 您的主要课程(Program.cs)不应该有记录器

  • 主方法不应引用任何具有记录器的类。

  • 然后,您可以在main方法中配置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;
    }
}