gpt4 book ai didi

logging - 在 .Net 核心中使用 Serilog 时监听器的相关 ID

转载 作者:行者123 更新时间:2023-12-05 03:02:53 27 4
gpt4 key购买 nike

我有一个 .net 核心控制台应用程序,它是 RabbitMQ 的监听器。我还使用 Serilog 进行日志记录。将消息推送到队列中的 API 添加一个关联 ID 作为消息中的一个参数。在编写日志时,我希望将 CorrelationID(在 serilog 配置的输出模板中指定)替换为消息中可用的 CorrelationID,以端到端地跟踪操作。有人可以建议实现这一目标的方法吗?

注意:如果是 web 请求,Serilog 提供的中间件(Scoped Middleware 或 LogContext)可以派上用场。但是,它们需要 HttpContext(出于显而易见的原因)。对于这种监听器请求,我苦苦寻找解决方案

非常感谢任何帮助

最佳答案

当您收到消息时,您应该能够

using (LogContext.PushProperty("corrId", msg.CorrId))
ProcessMessage(msg)

您也可以add a ....|{Properties} element into your log format string选择与给定消息关联的消息模板中未使用的任何属性(但听起来您已经涵盖了)

关于logging - 在 .Net 核心中使用 Serilog 时监听器的相关 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54339077/

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