NLog 是否缓存来自 NLog.config 的数据?
Does NLog cache the data from NLog.config?
我正在编写一个 Windows 服务,我认为最好在每次调用 OnStart
时创建一个新的 Logger
,而不是在服务构造函数中创建。这样,我希望对配置文件的更改在服务重新启动时生效,而不必以某种方式重新启动该过程以及所有麻烦。
然后我想到 NLog 可能只读取文件一次,当它初始化 LogManager
或其他东西时,我的预防措施是徒劳的。
如果您使用配置文件(nlog.config),您可以启用autoReload。
<nlog autoReload="true">
...
</nlog>
如果启用并且 nlog.config 中有更改,将自动重新加载配置 而无需 重新启动服务。参见 Automatic reconfiguration。
如果你配置 NLog 有问题(所以没有 nlog.config),那么你需要在配置更改后调用 LogManager.ReconfigExistingLoggers
。
and thought it better to create a new Logger in each call of OnStart, vs. in the service ctor.
对于这两种情况,何时创建新 Logger
并不重要。
我正在编写一个 Windows 服务,我认为最好在每次调用 OnStart
时创建一个新的 Logger
,而不是在服务构造函数中创建。这样,我希望对配置文件的更改在服务重新启动时生效,而不必以某种方式重新启动该过程以及所有麻烦。
然后我想到 NLog 可能只读取文件一次,当它初始化 LogManager
或其他东西时,我的预防措施是徒劳的。
如果您使用配置文件(nlog.config),您可以启用autoReload。
<nlog autoReload="true">
...
</nlog>
如果启用并且 nlog.config 中有更改,将自动重新加载配置 而无需 重新启动服务。参见 Automatic reconfiguration。
如果你配置 NLog 有问题(所以没有 nlog.config),那么你需要在配置更改后调用 LogManager.ReconfigExistingLoggers
。
and thought it better to create a new Logger in each call of OnStart, vs. in the service ctor.
对于这两种情况,何时创建新 Logger
并不重要。