如何在更改app-config路径时设置NLog配置文件加载/重新加载?

问题描述 投票:0回答:1

设置.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。

所以,似乎有三种选择:

  1. 查看NLog在将来的版本中为此更改代码(鉴于这确实是问题)。我将发布更新项目的问题:链接到.exe.config
  2. 手动加载配置,可以是.exe.config部分,也可以是特定的nlog.config文件(可能是通过.exe.config中的设置给出的)。但是,我们如何有效地执行此操作,以便创建的任何记录器都基于手动加载的配置?
  3. 也许还有另一种解决方案吗?
c# .net app-config nlog
1个回答
0
投票

我的猜测是,它内部并没有通过AppSettings API询问其配置部分,而是使用代码手动查找.exe.config和其中的config-section。

这是正确的,因为NLog使用相同的代码用于NLog的配置,无论是在web.config还是在nlog.config中

在代码中重新加载配置很简单,只需:

NLog issue

如果在重新加载配置之前有记录器,

NLog.LogManager.Configuration.Reload();
© www.soinside.com 2019 - 2024. All rights reserved.