我使用Log4net记录了所有应用程序事务。有没有什么办法可以在不改变为日志记录编写的代码的情况下从公共场所禁用和启用日志记录。
答案 0 :(得分:11)
我假设你想通过代码在正在运行的应用程序中切换日志。我没有尝试,但我认为调用以下方法应禁用日志记录:
LogManager.GetRepository().ResetConfiguration();
要重新启用日志记录,您可以调用
XmlConfigurator.Configure();
(或XmlConfigurator
的其他方法之一)。
然而,似乎有issue重复调用Configure
方法。我不知道这对你来说是不是一个问题,但至少我警告过你......
答案 1 :(得分:11)
您可以通过更改log4net配置文件来关闭它们。特别是将appender的级别或全局级别更改为“OFF”值。有关详细信息,请参阅here
答案 2 :(得分:2)
假设我从常见问题解答中了解了您的问题:http://logging.apache.org/log4net/release/faq.html
如何在运行时完全禁用所有日志记录?
将层次结构上的阈值设置为“关闭”将禁用该层次结构中的所有日志记录。这可以通过将log4net配置元素上的“threshold”属性设置为“OFF”在log4net配置文件中完成。例如: