使用.ConfigureAndWatch,我们已配置log4net以重新配置其日志记录级别,而无需重新启动应用程序进程。
进程开始我们将当前配置的日志级别跟踪到跟踪文件。 我们如何检测并跟踪我们的跟踪文件,通过.ConfigureAndWatch发生日志级别更改?
答案 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。这样,您可以过滤掉要返回到自己日志中的邮件。