我为许多客户提供了一堆不同的 appsettings.json。然而,这些应用程序设置的 nLog 部分永远不会改变,所以我希望为 nLog 配置提供一个 json 文件。 所以我的 appsettings.json 中有类似以下内容:
"NLog": {
"configFile": "nlog.json"
}
有人知道一个或多或少简单的解决方案吗?
您可以尝试将部分提取到单独的文件中,并使用
ConfigurationBuilder
添加它,如下面的示例所示。
我有两个设置文件:
appsettings.nlog.dev.json
- 所有应用程序设置appsettings.dev.json
- 具有单个 NLog
部分这两个文件都需要复制到输出目录。
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.dev.json", false)
.AddJsonFile("appsettings.nlog.dev.json", false)
.Build();
using var servicesProvider = new ServiceCollection()
.AddLogging(loggingBuilder =>
{
// configure Logging with NLog
loggingBuilder.ClearProviders();
var nlogConfig = new NLogLoggingConfiguration(config.GetSection("NLog"));
loggingBuilder.AddNLog(nlogConfig);
}).BuildServiceProvider();