gpt4 book ai didi

.net - 初始配置后将 Enrich.WithProperty 添加到 serilog 全局记录器

转载 作者:行者123 更新时间:2023-12-02 03:22:37 26 4
gpt4 key购买 nike

我们有一个带有 Main() 方法的服务,它可以像这样初始化我们的 serilog 记录器:

            Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.ColoredConsole()
.WriteTo.Seq(ConfigurationManager.AppSettings["SeqServer"], apiKey: ConfigurationManager.AppSettings["SeqApiKey"])
.Enrich.WithProperty("ServiceName", "SomeConsumer")
.CreateLogger();

现在,我想用另一种方法向此记录器附加一个附加属性。我想添加一个 .Enrich.WithProperty,因为我喜欢的日志记录风格Log.Error("Somelog")

我怎样才能做到这一点?我只想用一些字符串附加一个新属性。

最佳答案

在方法CreateLogger之后,您无法修改创建的记录器实例。如果特定方法或类想要仅在特定上下文中使用更多变量来丰富日志,那么 ForContext 就是正确的选择。

另一种方法是创建一个您在开始时设置的动态自定义丰富器,但这会根据某些逻辑改变其行为。

更新 2021-08-21:您现在可以使用 Serilog.Enrichers.GlobalLogContext创建 Serilog 管道后包含全局属性。

关于.net - 初始配置后将 Enrich.WithProperty 添加到 serilog 全局记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215215/

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