如何以非常具体的方式格式化 Serilog JSON 输出
How to format Serilog JSON output in a very specific manner
我需要将 Serilog json 输出格式化为特定格式的文件。我弄乱了输出模板,但我一定是遗漏了一些简单的东西。输出示例为:
{
"event.action": "Save",
"custom.vulnerability": "Save PII",
"event.action":"Insert",
"event.module":"Person",
"message":"Inserted person object by Bob",
"event.outcome":"Success",
"host.ip":"192.168.0.0",
etc...
}
有人对如何实现这种格式有什么建议吗?我有 enrichers 来填充其中的许多属性,但生成所需的输出格式是我的问题。谢谢,东塔
为了控制 JSON 输出的格式,您需要实现自定义 ITextFormatter
(您可以在其中决定如何格式化 JSON),并提供它发送日志的接收器。
Log.Logger = new LoggerConfiguration()
.WriteTo.File(new YourCustomJsonFormatter(), "./logs/myapp.json")
.CreateLogger();
您可以在 Serilog.Formatting.Compact 的源代码中查看自定义 ITextFormatter
的示例实现。
我需要将 Serilog json 输出格式化为特定格式的文件。我弄乱了输出模板,但我一定是遗漏了一些简单的东西。输出示例为:
{
"event.action": "Save",
"custom.vulnerability": "Save PII",
"event.action":"Insert",
"event.module":"Person",
"message":"Inserted person object by Bob",
"event.outcome":"Success",
"host.ip":"192.168.0.0",
etc...
}
有人对如何实现这种格式有什么建议吗?我有 enrichers 来填充其中的许多属性,但生成所需的输出格式是我的问题。谢谢,东塔
为了控制 JSON 输出的格式,您需要实现自定义 ITextFormatter
(您可以在其中决定如何格式化 JSON),并提供它发送日志的接收器。
Log.Logger = new LoggerConfiguration()
.WriteTo.File(new YourCustomJsonFormatter(), "./logs/myapp.json")
.CreateLogger();
您可以在 Serilog.Formatting.Compact 的源代码中查看自定义 ITextFormatter
的示例实现。