Rust 日志追踪与优化实践
1. tracing-subscriber 引入
在 Rust 项目中, tracing 本身并不直接提供订阅者。为了实现基本的订阅功能,我们需要引入 tracing-subscriber 这个 crate。操作步骤如下:
1. 在 Cargo.toml 中添加依赖:
[dependencies]
# ...
tracing-subscriber = { version = "0.2.12", features = ["registry", "env-filter"] }
-
tracing-subscriber不仅提供了一些实用的订阅者,还引入了Layer这个关键特性。Layer使得我们可以为跨度(span)数据构建处理管道,避免了构建一个无所不包的订阅者,而是通过组合多个小的层来获得所需的处理管道。这种分层方法的核心是Registry,它实现了Subscriber特性,负责存储跨度元数据、记录跨度之间的关系以及跟踪哪些跨度处于活动状态、哪些已关闭。下游的层可以利用Registry的功能,专注于自己的目的,如过滤要处理的跨度、格式化跨度数据、将跨度数据发送到远程系统等。
超级会员免费看
订阅专栏 解锁全文
386

被折叠的 条评论
为什么被折叠?



