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

Appending arrays in from appsettings.{Environment}.json to appsettings.json

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

我有一个 ASP.NET 核心应用程序

我在 appsettings.Development.Json

中有以下内容
  "Serilog": {
    "WriteTo": [
      {
        "Name": "ApplicationInsightsTraces",
        "Args": { "instrumentationKey": "XXXXXXXX" }
      }
    ]
  }

并且在`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"
  },
  }

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

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

"Serilog": {
  "WriteTo:1": 
  {
    "Name": "ApplicationInsightsTraces",
    "Args": { "instrumentationKey": "d95066c9-0b17-4e0a-84d4-bb2a4f111016" }
  }
}