gpt4 book ai didi

asp.net-core - 带有自定义模板和 JSON 格式化程序的 Serilog

转载 作者:行者123 更新时间:2023-12-03 14:57:03 38 4
gpt4 key购买 nike

我在 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"

那么如何获得 JSON 输出,同时获得 SourceContext我需要的数据?

最佳答案

我不确定自提出问题以来发生了什么变化,但现在我确实得到了 SourceContext多变的。我正在使用 Serilog.AspNetCore版本3.4.0 , 在 ASP.NET Core 5 上。
这有效:

{
"Name": "File",
"Args": {
// ...
//"outputTemplate": "", // DO NOT USE THIS
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
}
}
只是不要使用 outputTemplateformatter同时。
这个配置给了我变量 @t , @mt , @l , SourceContext .
备注 @l不包括在 Information 中级别,因为这被认为是默认值。

关于asp.net-core - 带有自定义模板和 JSON 格式化程序的 Serilog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211127/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com