.netcore serilog aws cloudwatch 日志记录未解构

时间:2021-02-08 17:13:04

标签: asp.net-core amazon-cloudwatch serilog

我有 .netcore 3.1 webapi 并且我已经设置了 serilog 日志记录到 cloudwatch。我的配置看起来像:

{
  "Serilog": {
    "MinimumLevel": "Information",
    "Enrich": "FromLogContext",
    "Using": [
      "SeriLog.Sinks.Console",
      "AWS.Logger.SeriLog"
    ],
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "{Timestamp:o} [{Level:u3}] {Scope} {Message:lj}{NewLine}{Exception}",
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
        }
      },
      {
        "Name": "AWSSeriLog"
      }
    ]
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "Publisher": "base_publisher_setting"
  },
  "SnapshotDataDeleteOlderThanDays": 3,
  "Logging": {
    "Region": "eu-west-1",
    "LogGroup": "publisher-test-api",
    "LogLevel": {
      "Default": "Information",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

我在启动类中连接日志的代码如下所示:

Log.Logger = new LoggerConfiguration()
  .ReadFrom.Configuration(_configuration)
  .CreateLogger();
services.AddLogging(
  builder => {
    builder.AddSerilog(dispose: true);
  }
);

我的日志记录如下:

_logger.LogInformation("summary for guid {snapShotId} summary count {count} {@summary}",snapShotId,summary.Count(),summary.Wrap());

wrap 扩展方法取自 https://github.com/serilog/serilog/issues/912#issuecomment-263267790

在 Rider 的控制台上,一切看起来都不错,我得到了解构的对象。但是在 cloudwatch 中我只得到对象类型。我确实读过 cloudwatch 不喜欢 @ 所以在我的 var {@summary} 中我尝试了 {summary} 但是仍然没有给我对象作为 json 并且它阻止控制台输出对象。

我错过了什么吗?

0 个答案:

没有答案