簡體   English   中英

未從appsettings文件中應用ASP.Net Core 2中的Serilog JsonFormatter

[英]Serilog JsonFormatter in an ASP.Net Core 2 not being applied from appsettings file

我有一個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",

正如在其他多個地方建議的那樣。

我的輸出寫得很好,但是格式化程序設置似乎對輸出沒有任何影響。

我在這里做錯什么了嗎,還是尚未通過配置文件讀取此功能?

在此先感謝您的幫助。

事實證明,(當前)不能同時指定格式化程序和outputTemplate(如在https://github.com/serilog/serilog-sasplog-aspnetcore/issues/31上闡明)。

希望這種情況將來可能會改變...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM