Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4net:如何在运行时启用调试日志记录?_Log4net - Fatal编程技术网

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

Log4net:如何在运行时启用调试日志记录?,log4net,Log4net,在测试环境中,调试日志已启用,因此我可以看到详细的调试日志消息。在生产环境中,我希望在默认情况下禁用调试日志,但仍然希望在需要时启用/禁用它 我可以在运行时启用调试日志而不重新启动应用程序吗?我的日志代码如下所示: if(logger.IsDebugEnabled) Logger.Debug("debug message"); 您可以通过设置更改为loglevel,然后应用新设置: ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetR

在测试环境中,调试日志已启用,因此我可以看到详细的调试日志消息。在生产环境中,我希望在默认情况下禁用调试日志,但仍然希望在需要时启用/禁用它

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

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

您可以通过设置更改为loglevel,然后应用新设置:

((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));