设置.Net应用程序,以便使用相同的应用程序配置(在Visual Studio中使用.exe.config
- app.config
)重新使用同一程序的多个实例。
在我们的场景中,我们需要使用自己的.exe.config
运行每个实例。这不是.Net被“开箱即用”的东西。然而,这个漂亮的小包装为我们做了诀窍:https://stackoverflow.com/a/6151688/95008
这对我们来说很好,直到我们意识到NLog似乎不尊重app-config的变化。我们在qlogxswpoi中为NLog添加了一个配置节,这使得每个实例都可以使用不同的规则和目标登录到不同的位置。
但是,似乎NLog不尊重app-config的变化。我的猜测是,它内部并没有通过AppSettings API询问其配置部分,而是使用代码手动查找.exe.config
及其中的config-section。
所以,似乎有三种选择:
.exe.config
。我的猜测是,它内部并没有通过AppSettings API询问其配置部分,而是使用代码手动查找.exe.config和其中的config-section。
这是正确的,因为NLog使用相同的代码用于NLog的配置,无论是在web.config还是在nlog.config中
在代码中重新加载配置很简单,只需:
NLog issue
如果在重新加载配置之前有记录器,
NLog.LogManager.Configuration.Reload();