在 .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"
}
}
]
}
有人可以帮忙指出我哪里做错了吗?
假设您按预期在该文件中获取 JSON,问题是您正在使用
CompactJsonFormatter
,它不会呈现消息模板。
相反,您需要为
Serilog.Formatting.Compact.RenderedCompactJsonFormatter
arg 传递 formatter
。