gpt4 book ai didi

c# - 使用 Serilog 时如何在输出消息中获取丰富的属性

转载 作者:太空狗 更新时间:2023-10-29 21:08:41 33 4
gpt4 key购买 nike

我正在尝试使用 Serilog 将丰富的属性输出到呈现的消息中:

private static Tester GetTester()
{
return new Tester {Count = 7, Name = "Redmond"};
}

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.Enrich.WithProperty("Site", "Dan Local")
.WriteTo
.ColoredConsole()
.CreateLogger();

var tester = GetTester();

Log.Verbose("{Site} - This is verbose {@tester}", tester);
Log.Verbose("This is verbose {@tester} - {Site}", tester);

第一条日志语句输出:

2014-08-19 10:02:25 [Verbose] "SeriLogTest.Tester" - This is verbose {@tester}

第二个日志语句输出:

2014-08-19 10:02:25 [Verbose] This is verbose Tester { Count: 7, Name: "Redmond" } - "Dan Local"

我希望它们都输出相同的信息,只是按照消息模板定义的顺序不同。但是正如您所看到的,如果您不将丰富的属性放在最后,它将由要记录的提供的对象接管,而第二个模板属性将被忽略。有办法做到这一点吗?

最佳答案

输出模板是实现这一点的方法,即:

    .WriteTo.ColoredConsole(
outputTemplate: "{Timestamp:HH:mm} [{Level}] {Site}: {Message}{NewLine}{Exception}")

这将与每条消息一起打印 Site 属性的值;例如:

Log.Information("Hello");

打印:

19:40 [Information] Dan Local: Hello

关于c# - 使用 Serilog 时如何在输出消息中获取丰富的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25385664/

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