log4net控制台应用程序配置

10

有人能建议如何为控制台应用程序配置log4net吗?

或者至少知道在哪里/如何捕获Application_Start事件?(似乎此时需要进行某些调用)

提前感谢!

2个回答

13
尝试写作
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

就在 AssemblyInfo.cs 文件中。

就是这样!


这个是用来做什么的?在我的情况下似乎没有帮助到任何东西。 - Tomas Pajonk
它应该1)告诉log4net使用默认设置(app.config)进行配置2)导致log4net在包含log4net条目的底层文件更改时自动重新加载其配置。 - Andrew
@Tomas,你还需要将log4net配置添加到app.config文件中。 - codeulike

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接