Windows IsLoggingEnabled()能否在运行时更改?

Windows IsLoggingEnabled()能否在运行时更改?,windows,logging,enterprise-library,enterprise-library-5,Windows,Logging,Enterprise Library,Enterprise Library 5,我正在封装EntLib 5日志应用程序块。我在文档中看到,每次要登录时,都应该查看“IsLoggingEnabled()”。事实上,这是一个方法而不是属性,告诉我这是一个需要一些时间才能完成的操作,但是。。。我是否可以将该值缓存在局部变量中,并检查是否可以基于它进行日志记录 干杯。您不能通过代码更改日志设置,正如在会议上所说的那样。但在那里你也可以读到: 注意: 运行时对日志配置的更改 应用程序块将自动关闭 短时间后检测到,并且 日志堆栈已更新。然而,你 无法在运行时修改日志堆栈 时间通过代码。

我正在封装EntLib 5日志应用程序块。我在文档中看到,每次要登录时,都应该查看“IsLoggingEnabled()”。事实上,这是一个方法而不是属性,告诉我这是一个需要一些时间才能完成的操作,但是。。。我是否可以将该值缓存在局部变量中,并检查是否可以基于它进行日志记录


干杯。

您不能通过代码更改日志设置,正如在会议上所说的那样。但在那里你也可以读到:

注意:
运行时对日志配置的更改 应用程序块将自动关闭 短时间后检测到,并且 日志堆栈已更新。然而,你 无法在运行时修改日志堆栈 时间通过代码。详情 使用配置机制 您可以在运行时更新,请参阅 在运行时更新配置设置 时间

也就是说,虽然您无法以编程方式启用/禁用日志记录,但如果手动编辑配置,日志记录可以在运行时更改


因此,这就是为什么每次都需要访问
IsLoggingEnabled()
操作的原因,缓存它的值不是一个好主意。

我明白了。因此,在web环境中不是问题,因为每次更改web.config时,iis都会重置应用程序。但是,在windows应用程序或服务中,您可以更改这些值,然后就会出现问题。我说得对吗?看起来是这样:“在Windows窗体应用程序中,您可以重新启动应用程序,使其读取所有新的配置信息。Web窗体(ASP.NET)应用程序将检测并重新加载配置信息,但ASP.NET的标准行为会导致在编辑配置文件时重新启动应用程序,从而导致应用程序的所有状态丢失。”不能通过代码在运行时修改日志堆栈,但可以通过代码在运行时修改配置,从而在运行时修改日志堆栈。:)