使用 Serilog 获取 InnerExceptions?

Get InnerExceptions with Serilog?

提问人:Banshee 提问时间:4/5/2023 更新时间:4/5/2023 访问量:62

问:

我在一个小而简单的 .NET Core 6 项目中绑定了 serilog,我惊讶地发现它没有记录整个带有内部异常的异常?

我尝试添加Serilog.Exceptions并相应地配置了appsettings:

"serilog": {
    "Using": [
      "Serilog.Enrichers.Environment",
      "Serilog.Sinks.File",
      "Serilog.Sinks.Console",
      "Serilog.Exceptions"
    ],
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception} {Properties:j}"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": "Logs/log.txt",
          "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception} {Properties:j}",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
          "fileSizeLimitBytes": 1000000,
          "rollOnFileSizeLimit": "true",
          "shared": "true",
          "flushToDiskInterval": 3
        }
      }
    ],
    "Enrich": [
      "FromLogContext",
      "WithMachineName",
      "WithProcessId",
      "WithExceptionDetails"
    ],
    "Properties": {
      "Application": "MyApp"
    }

它确实添加了数据,但没有内部异常?

我找到了向异常类添加扩展的建议,然后不要将异常 obj 发送到 LogError,而是让扩展提供自定义字符串。但是,如果有一天我想更改为另一个日志记录组件,这似乎是错误的做事方式。

.NET 异常 日志记录 serilog

评论


答: 暂无答案