docker - asp net core docker serilog配置

标签 docker asp.net-core

我有一个配置为在Docker容器中运行的dot net core 3.1应用程序。
虽然我已经使用docker -e标志设法更新了简单的appsettings配置,但是对于一些复杂的配置(例如serilog配置),我仍然感到困惑。

appsettings文件:

{
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "Host=172.18.101.65;Port=5432;Username=postgres;Password=pgadmin;Database=identityserver;"
  },
  "Serilog": {
    "Using": [],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "Enrich": [ "FromLogContext", "WithMachineName", "WithProcesssId", "WithThreadId" ],
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "D:\\Logs\\IDSvr\\Log-.txt",
          "outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}",
          "rollingInterval": "Day",
          "shared": true
        }
      },
      {
        "Name": "Seq",
        "Args": {
          "serverUrl": "http://localhost:8081"
        }
      }
    ]
  },
  .
  .
  .
  }

我可以使用-e ConnectionStrings__DefaultConnection="..."标志更新连接字符串,但不确定如何更新SerilogWriteTo配置部分。

最佳答案

WriteTo是一个复杂的对象array。因此,您必须指定要覆盖的索引。假设您要覆盖:

"Serilog": {
  "WriteTo": [
    {
      "Name": "Console" // this value
    },
    ...

由于数组中的索引为0,因此可以通过-e Serilog__WriteTo__0__Name选择键。然后只需将其传递给想要的值即可,例如-e Serilog__WriteTo__0__Name=something

若要读取.NET Core Configuration中的确切值,请在启动管道中使用Configuration["Serilog:WriteTo:0:Name"]

关于docker - asp net core docker serilog配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61998472/

相关文章:

Dockerfile 错误 "port is already allocated"。如何解决这个问题呢?

docker - 什么是 docker run -it 标志?

c# - 如何使用 mvc 6、asp.net 5 注册全局过滤器

c# - 使用该数据库跟踪微服务中的数据库架构更改

c# - 在 cshtml 中重用编辑和新建 View 内容的 ASP.NET Core 特定方法

docker 容器内的 docker

docker - 如何将 `docker network create` CLI 选项转换为 compose 格式以供 `docker stack deploy` 使用?

node.js - 如何开始使用 dockerode

asp.net-core - 使用自定义位置时如何在asp.net core mvc中指定 View 位置?

.net - 从 iis 8.5 windows server 2012 上的 asp.net core 应用程序获取 500 错误代码,但在控制台上工作正常