lon*_*nix 6 serilog asp.net-core asp.net-core-2.1
我在 ASP.NET Core 2.1 中使用 Serilog,并通过appsettings.json.
默认模板不包含{SourceContext},所以我使用自己的包含它的模板。但我也希望使用 JSON 进行结构化日志记录。
我在 Serilog wiki 的某个地方阅读了我无法同时指定formatter(对于 JSON 输出)的内容outputTemplate。
所以我不能这样做,例如:
"outputTemplate": "{Timestamp:yyyy-MM-dd} {Level:u3} {SourceContext} {Message:lj}{NewLine}{Exception}",
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
Run Code Online (Sandbox Code Playgroud)
那么如何获得JSON输出,同时获得SourceContext我需要的数据呢?
我不确定自提出问题以来发生了什么变化,但现在我确实得到了变量SourceContext。我在 ASP.NET Core 5 上使用Serilog.AspNetCoreversion 。3.4.0
这有效:
{
"Name": "File",
"Args": {
// ...
//"outputTemplate": "", // DO NOT USE THIS
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
}
}
Run Code Online (Sandbox Code Playgroud)
只是不要同时使用outputTemplateand 。formatter
这个配置给了我变量@t, @mt, @l, SourceContext。
@l级别不包含注释Information,因为该级别被视为默认值。
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |