在ASP.Net Core 2中,从appsettings文件中未应用Serilog JsonFormatter

3
我有一个ASP.Net Core 2 Web应用程序,我正在尝试配置SeriLog以通过appsettings.json文件输出JSON格式。我无法使用标准的SeriLog.Formatting.Json.JsonFormatter或紧凑的SeriLog.Formatting.Compact.CompactJsonFormatter使其正常工作。
我看到有类似的问题在这里被问到,但是似乎没有关于使用appsettings.json的确定答案,而且这个线程已经安静了一年之久(我没有足够的声望来评论以促进更多回应)。
我使用以下SeriLog软件包:
  • Serilog.AspNetCore - 2.1.0
  • Serilog.Enrichers.Environment - 2.1.2
  • Serilog.Enrichers.Thread - 3.0.0
  • Serilog.Formatting.Compact - 1.0.0
  • Serilog.Settings.Configuration - 2.4.0
  • Serilog.Sinks.RollingFile - 3.3.0
我的appsettings.json文件中的SeriLog部分如下:
"Serilog": {
  "Using": ["Serilog.Sinks.RollingFile"],
  "MinimumLevel": {
    "Default": "Verbose",
    "Override": {
      "Microsoft": "Warning",
      "System": "Warning"
    }
  },
  "WriteTo": [
    {
      "Name": "RollingFile",
      "Args": {
        "pathFormat": "C:\\Logs\\MLSBPortal-{Date}.txt",
        "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact",
        "restrictedToMinimumLevel": "Debug",
        "retainedFileCountLimit": "10",
        "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{ThreadId}] [{SourceContext}] [{SessionId}] [{UserName}]: {Message}{NewLine}{Exception}"
      }
    }
  ],

当使用默认的 JSON 格式化程序进行测试时,将格式化行修改为以下内容:

"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",

正如在其他多个地方所建议的那样。

我的输出结果很好,但似乎格式设置对输出结果没有任何影响。

我在这里做错了什么,还是这个功能尚未通过配置文件读取来实现?

提前感谢您的任何帮助。


我建议在 https://github.com/serilog/serilog-aspnetcore 存储库中创建一个问题(issue)。 - Mike
1
谢谢你的建议,Mike。我一直担心自己做错了什么。根据你的建议,我提出了一个新的问题/问题:https://github.com/serilog/serilog-aspnetcore/issues/31如果有回复,我会更新这篇文章。 - Stuart Northcott
1个回答

9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接