【发布时间】:2016-12-01 18:08:02
【问题描述】:
在测试环境中,调试日志是开启的,所以我可以看到详细的调试日志信息。在生产环境中,我想默认禁用调试日志,但如果需要仍想启用/禁用它。
我可以在运行时启用调试日志而不重新启动我的应用程序吗?我的日志代码如下所示:
if(logger.IsDebugEnabled) Logger.Debug("debug message");
【问题讨论】:
标签: log4net
在测试环境中,调试日志是开启的,所以我可以看到详细的调试日志信息。在生产环境中,我想默认禁用调试日志,但如果需要仍想启用/禁用它。
我可以在运行时启用调试日志而不重新启动我的应用程序吗?我的日志代码如下所示:
if(logger.IsDebugEnabled) Logger.Debug("debug message");
【问题讨论】:
标签: log4net
您可以通过设置更改为日志级别,然后应用新设置:
((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));
并且可以配置默认配置来设置注销。
然后对配置文件的任何更改将立即生效,而无需重新启动程序。
【讨论】: