Serilog 未从配置文件获取 Seq 配置

Serilog doesn't get Seq configuration from configuration file

提问人:Matteo Devigili 提问时间:3/22/2022 更新时间:10/10/2023 访问量:665

问:

我正在从这个配置文件中读取 serilog 和 seq 配置。

{
  "clientId": "...",
  "secret": "...",
"Serilog": {
"MinimumLevel": {
  "Default": "Information",
  "Override": {
    "Microsoft": "Warning",
    "Microsoft.AspNetCore.Authentication": "Information",
    "System": "Warning",
    "Hangfire": "Information"
  }
},
"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "//tmp//infinitys//logs//qms//log-.txt",
      "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}",
      "rollingInterval": "Day",
      "retainedFileCountLimit": 7
    }
  },
  {
    "Name": "Seq",
    "Args": {
      "serverUrl": "http://seq:5341"
    }
  }
],
    "Enrich": [
      "WithMachineName",
    ]
  }
}

当我尝试设置记录器时,似乎没有读取 Seq 部分,只有 rollign 文件部分在工作。

            var logger = new LoggerConfiguration().ReadFrom.Configuration(config)
            .CreateLogger();

如果我像这样手动添加 seq 配置,它可以工作:

        var logger = new LoggerConfiguration().ReadFrom.Configuration(config)
            .WriteTo.Seq("http://localhost:5341").Enrich.WithMachineName().Enrich.WithProperty("ClientId:", config.GetSection("clientId").Value)
            .CreateLogger();

问题是我需要对不同的环境进行不同的配置。

我在配置文件中是否遗漏了某些内容?

C# 日志记录 Serilog seq

评论

0赞 mason 3/24/2022
尝试启用自日志,以便您可以在控制台中获取有关正在发生的事情的详细信息。另外,请在配置记录器后立即添加输出,以便我们验证它是否有效。logger.Information("test")

答:

0赞 Nick Cipollina 10/10/2023 #1

您缺少配置中告诉 Serilog 您正在使用 Seq Sink 的部分。Using

{
  "clientId": "...",
  "secret": "...",
  "Serilog": {
    "Using": [
      "Serilog.Sinks.Seq"
    ],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "Microsoft.AspNetCore.Authentication": "Information",
        "System": "Warning",
        "Hangfire": "Information"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "//tmp//infinitys//logs//qms//log-.txt",
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}",
          "rollingInterval": "Day",
          "retainedFileCountLimit": 7
        }
      },
      {
        "Name": "Seq",
        "Args": {
          "serverUrl": "http://seq:5341"
        }
      }
    ],
    "Enrich": [
      "WithMachineName",
    ]
  }
}