检查log4net XmlConfigurator是否成功

5

如何检查log4net的XmlConfigurator.Configure调用是否成功?如果日志配置无法正确加载(即文件不存在、文件格式不正确等),我想进行Web服务调用。

1个回答

16

来自常见问题解答

To prevent silent failure of log4net as reported as LOG4NET-342, log4net supports a way to evaluate if it was configured and also to evaluate messages generated on startup since 1.2.11. To check if log4net was started and configured properly one can check the property log4net.Repository.ILoggerRepository.Configured and enumerate the configuration messages as follows:

if(!log4net.LogManager.GetRepository().Configured)
{
  // log4net not configured
  foreach(log4net.Util.LogLog message in log4net.LogManager.GetRepository().ConfigurationMessages.Cast<log4net.Util.LogLog>())
  {
      // evaluate configuration message
  }
}

谢谢,但这仅适用于LogManager在应用程序启动时初始化一次的情况。我有一个动态场景,其中用户可以重新加载配置。 - D.R.
我自己找到了解决方案:你的答案结合 LogManager.GetRepository().ResetConfiguration() 就可以完成任务! - D.R.
1
@D.R.:太好了!随意编辑如何将其用于答案的详细信息(我对您的情况不是完全清楚,因此您可能还需要编辑问题)。您是否正在使用ConfigureAndWatch,或者“用户可以重新加载配置”是指其他内容? - Jeroen Mostert

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