Laurence头像
关注
Rust 日志终极指南:Tracing 概念、架构、配置和全套示例代码封面图

Rust 日志终极指南:Tracing 概念、架构、配置和全套示例代码


特别声明:由于长期受盗文和剽窃困扰,本博客的精华文章均已转为付费阅读,一次付费可解锁全部文章,详情参见 【 付费专栏 】,望请理解。

1. Logging 与 Tracing

花开两朵,各表一枝,咱们先解释一下什么是 logging 什么又是 tracing。logging 都很熟悉了,不需要解释,不过大家需要知道一点 Rust 日志库生态的历史,早期,Rust 官方定义了标准的日志库:log (https://crates.io/crates/log),但这只是一个 logging facade,也就是只定义了 Rust 官方的 logging API,并没有提供具体实现,而是把这个工作留给了社区。这些年,Rust 也涌现了一些不错的日志库,具体可以参考 Rust 的官方推荐:
https://github.com/rust-lang/log#in-executables,一些比较常用的三方实现库是:env_logger、simplelog 等。它们和 log 之间的关系和 Java 中 log4j、logback 与 slf4j-api 之间的关系是一样的。

接下来,介绍一下 tracing。在大型分布式系统中,例如使用微服务架构的大型 Web 应用,一条用户请求可能会横跨多个独立部署的服务,此时再用传统的日志方式去跟踪这条用户请求就变得非常困难,这就是为什么要引入分布式追踪框架的原因。分布式追踪的核心思路是:在请求的开始生成一个 trace id,然后将该 trace id 一直往后传,请求经过的每个服务都会使用该 trace_id 记录相关信息,最终将整个请求的链路串联起来。

Tokio 是 Rust 最主流的异步运行时,由

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/bluishglc/article/details/163139907

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--