Serilog 中带参数的输出不起作用

问题描述 投票:0回答:1

在 .Net Core Webapi 项目中,我使用 Serilog 进行日志记录。但是当我使用

_logger.LogInformation("Token for user {UserName} created",data.username);
并检查日志文件时,输出是
"Token for user {Username} created"
{用户名} 不会替换为实际值。我确信该值不为空。

我在 LoginService 中使用它,appsetting.json 中的 Serilog 设置是

"Serilog": {
  "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
  "MinimumLevel": {
    "Default": "Debug",
    "Override": {
      "Microsoft": "Information",
      "System": "Information"
    }
  },
  "WriteTo": [
    { "Name": "Console" },
    {
      "Name": "File",
      "Args": {
        "path": "C:\\Users\\ab\\Projects\\IQC\\IQC_Log.txt",
        "rollingInterval": "Day",
        "rollOnFileSizeLimit": true,
        "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter"
      }
    }
  ]
}

有人可以帮忙指出我哪里做错了吗?

serilog serilog-sinks-file serilog-aspnetcore
1个回答
0
投票

假设您按预期在该文件中获取 JSON,问题是您正在使用

CompactJsonFormatter
,它不会呈现消息模板。

相反,您需要为

Serilog.Formatting.Compact.RenderedCompactJsonFormatter
arg 传递
formatter

© www.soinside.com 2019 - 2024. All rights reserved.