如何跟踪.ConfigureAndWatch导致的日志级别更改

时间:2014-10-14 20:43:52

标签: log4net

使用.ConfigureAndWatch,我们已配置log4net以重新配置其日志记录级别,而无需重新启动应用程序进程。

进程开始我们将当前配置的日志级别跟踪到跟踪文件。 我们如何检测并跟踪我们的跟踪文件,通过.ConfigureAndWatch发生日志级别更改?

2 个答案:

答案 0 :(得分:1)

我刚刚(重新)发现ILoggerRepository有一个ConfigurationChanged事件。 从那里跟踪日志级别更改工作正常。

    private static void  repository_ConfigurationChanged(object sender, System.EventArgs e)
{
    var currentTracelLevel = ((log4net.Repository.Hierarchy.Logger)_trace.Logger).EffectiveLevel;
    _trace.InfoFormat("----------------------------- log4net level={0}", currentTracelLevel);
}

答案 1 :(得分:0)

您可以激活the log4net internal debugging,然后当您发生更改时,您将在控制台或跟踪输出中收到来自ConfigureAndWatchHandler类的消息(有关详细信息,请参阅链接)


重新评论:为了将事件撤回到您自己的代码中而不依赖于控制台或跟踪输出,我建议您创建自定义trace appender that loops back into log4net。这样,您可以过滤掉要返回到自己日志中的邮件。