首页 > 解决方案 > 如何为多个环境 appsettings.json 配置 Serilog

问题描述

我正在尝试配置 appsettings.json,以便为每个环境(Dev、UAT、Prod 等)提供多个 Serilog 变量,我有以下适用于 dev 的 serilog:

    "Serilog": {
  "MinimumLevel": "Verbose",
  "Using": [
    "Serilog.Sinks.Console",
    "Serilog.Sinks.Seq"
  ],
  "WriteTo": [
    {
      "Name": "Console"
    },
    {
      "Name": "Seq",
      "Args": {
        "serverUrl": "https://seq-dev.test.com"
      },
      "Properties": {
        "Application": "Console.Sample",
        "Environment": "Local"
      }
    }
  ]
},

我目前的解决方案是拥有一组 Serilog 实例。我将把一个 arg 传递给我想要的主要环境,我应该使用那个 Seq 实例(例如:args:Environment="d" for dev - 这应该拉出 dev Serilog)

    "d": {
  "Serilog": {
    "MinimumLevel": "Verbose",
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.Seq"
    ],
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "Seq",
        "Args": {
          "serverUrl": "https://seq-dev.test.com"
        },
        "Properties": {
          "Application": "Console.Sample",
          "Environment": "Local"
        }
      }
    ]
  }
},
"q": {
  "Serilog": {
    "MinimumLevel": "Verbose",
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.Seq"
    ],
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "Seq",
        "Args": {
          "serverUrl": "https://seq-dev.test.com"
        },
        "Properties": {
          "Application": "Console.Sample",
          "Environment": "Local"
        }
      }
    ]
  }
},

标签: asp.net-coreconfigurationserilogseqseq-logging

解决方案


这更多是配置的事情。

您需要为每个环境指定一个 appsettings json

在此处输入图像描述

应用程序将使用的那个由这个 ENV 变量决定

在此处输入图像描述


推荐阅读