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

时间:2018-05-04 04:34:21

标签: asp.net-core appsettings serilog

这与this question非常相似,只是在两个不同的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"
  },
  }

因为Keys会覆盖Appsettings.json中的其他键,所以我最终会覆盖Console sink。是否有允许附加的语法?

1 个答案:

答案 0 :(得分:1)

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

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