将数组从 appsettings.{Environment}.json 附加到 appsettings.json

Jus*_*ing 5 appsettings serilog asp.net-core

这与这个问题非常相似,除了它是关于在两个不同的 JSON 文件之间附加数组之外。

我有一个 ASP.NET Core 应用程序

我在 appsettings.Development.Json 中有以下内容

"Serilog": {
  "WriteTo": [
    {
      "Name": "ApplicationInsightsTraces",
      "Args": { "instrumentationKey": "XXXXXXXX" }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

并在appsettings.json

"Serilog": {
  // . . . Rest of Serilog configs  
  "WriteTo": [
    {
      "Name": "Console",
      "Args": {
      "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
      "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {RequestId}-{SourceContext} {$Scope:lj}: {Message:lj}{NewLine}{Exception}"
    },
    "restrictedToMinimumLevel": "Information"
  },
}
Run Code Online (Sandbox Code Playgroud)

因为键会覆盖 Appsettings.json 中的其他键,所以我最终会覆盖控制台接收器。是否有允许附加它的语法?

Jus*_*ing 7

答案是使用WriteTo:1并使其成为一个对象而不是数组,appsettings.Development.json如下所示:

"Serilog": {
  "WriteTo:1": 
  {
    "Name": "ApplicationInsightsTraces",
    "Args": { "instrumentationKey": "d95066c9-0b17-4e0a-84d4-bb2a4f111016" }
  }
}
Run Code Online (Sandbox Code Playgroud)