给你的后台服务日志增加 CorrelationId

💡 原文中文,约8000字,阅读约需19分钟。
📝

内容提要

本文介绍了如何给后台服务的日志增加CorrelationId,通过定义CorrelationContext类和CorrelationContextAccessor类来存储和获取CorrelationId,以及在请求中添加CorrelationId。还扩展了创建service scope的方法和日志记录功能,以便于处理Correlation。通过示例展示了如何使用这些功能。

🎯

关键要点

  • 在后台服务日志中增加 CorrelationId 以便于日志关联。
  • 定义 CorrelationContext 类来存储 CorrelationId,类似于 HttpContext。
  • 使用 CorrelationContextAccessor 类来访问 CorrelationContext,支持非依赖注入的场景。
  • 创建 CorrelationHttpHandler 类,在发出的请求中添加 CorrelationId 以便于日志追踪。
  • 扩展 ServiceProvider 以支持创建带有 CorrelationContext 的 service scope。
  • 实现 CorrelationEnricher 类,向日志中添加 CorrelationId 属性。
  • 提供示例代码展示如何使用 Serilog 记录日志并处理 HTTP 请求。
  • 讨论了当前方案的不足之处及未来改进的方向,包括使用 Activity 替代 CorrelationContext。
➡️

继续阅读