NLog是否从NLog.config缓存数据?

时间:2016-10-06 15:08:27

标签: .net caching windows-services nlog .net-4.6.1

我正在编写Windows服务,并认为最好在Logger的每个调用中创建一个新的OnStart,而不是在服务构造函数中。这样,我希望配置文件的更改将在重新启动服务时生效,而不必以某种方式重新启动进程以及所有麻烦。

然后我发现NLog可能只读取文件一次,当它初始化LogManager或其他东西时,我的预防措施是徒劳的。

1 个答案:

答案 0 :(得分:1)

如果使用配置文件(nlog.config),则可以启用autoReload。

<nlog autoReload="true">
   ...
</nlog>

如果启用并且nlog.config中发生更改,则配置将自动重新加载而不重新启动服务。请参阅Automatic reconfiguration

如果您有问题配置NLog(因此没有nlog.config),则需要在配置更改后调用LogManager.ReconfigExistingLoggers

  

并认为最好在OnStart的每次调用中创建一个新的Logger,而不是在服务ctor中。

对于这两种情况,创建新Logger时无关紧要。