Log4net:如何在运行时启用调试日志记录?

Log4net: How to enable debug logging at runtime?

在测试环境中,启用了调试日志,因此我可以看到详细的调试日志消息。在生产环境中,我想默认禁用调试日志,但如果需要,仍然想 enable/disable 它。

我可以在运行时启用调试日志而不重新启动我的应用程序吗?我的日志记录代码如下所示:

if(logger.IsDebugEnabled) Logger.Debug("debug message");

您可以通过设置更改为日志级别,然后应用新设置:

((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Debug;
((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).RaiseConfigurationChanged(EventArgs.Empty);

通常的做法是让 log4net 监视 app.config 或配置文件的更改。

例如使用属性

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

log4net.Config.XmlConfigurator.ConfigureAndWatch(new  System.IO.FileInfo(logConfigFilename));

并且可以配置默认配置以设置注销。

然后对配置文件的任何更改将立即生效,无需重新启动程序。