gpt4 book ai didi

c# - 删除 Serilog 输出中的默认属性

转载 作者:行者123 更新时间:2023-11-30 16:48:54 25 4
gpt4 key购买 nike

在文件中的 Serilog 输出中,我看到默认是

{
"Timestamp": "2016-05-28T21:21:59.0932348+08:00",
"Level": "Information",
"MessageTemplate": "Processed {@Number} records in {@Time} ms",
"Properties": {
"Number": 500,
"Time": 120
}
}

有没有办法删除时间戳、级别、消息模板和属性,以便我只剩下这个

{
"Number": 500,
"Time": 120
}

Log.Logger 是这样分配的

Log.Logger = new LoggerConfiguration()
.WriteTo.Sink(new FileSink(ConfigurationManager.AppSettings["serilogPath"], new JsonFormatter(), null))
.CreateLogger();

谢谢

最佳答案

从查看 source code ,看起来 JsonFormatter 不支持跳过这些默认属性。您可以创建自己的 ITextFormatter 来满足您的需求。这是一个简单的示例(不应在生产中使用,因为它不进行任何转义——它仅用于演示目的):

public class SOFormatter : ITextFormatter
{
public void Format(LogEvent logEvent, TextWriter output)
{
output.Write("{");
foreach (var p in logEvent.Properties)
{
output.Write("\"{0}\" : {1}, ", p.Key, p.Value);
}
output.Write("}");
}
}

关于c# - 删除 Serilog 输出中的默认属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37500141/

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