|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
# 使用 tracing 输出自定义的 Rust 日志
|
|
|
|
|
|
|
|
|
|
在 [tracing](https://docs.rs/crate/tracing/latest) 包出来前,Rust 的日志也就 `log` 有一战之力,但是 `log` 的功能相对来说还是鸡简单一些。在大名鼎鼎的 tokio 开发团队推出 `tracing` 后,我现在坚定的认为 `tracing` 就是未来!
|
|
|
|
|
在 [tracing](https://docs.rs/crate/tracing/latest) 包出来前,Rust 的日志也就 `log` 有一战之力,但是 `log` 的功能相对来说还是简单一些。在大名鼎鼎的 tokio 开发团队推出 `tracing` 后,我现在坚定的认为 `tracing` 就是未来!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> 截至目前,rust编译器团队、GraphQL 都在使用 tracing,而且 tokio 在密谋一件大事:基于 tracing 开发一套终端交互式 debug 工具: [console](https://github.com/tokio-rs/console)!
|
|
|
|
@ -292,7 +292,7 @@ $ cargo run --example figure_3
|
|
|
|
|
|
|
|
|
|
不知道大家知道分布式追踪不?在分布式系统中每一个请求从开始到返回,会经过多个服务,这条请求路径被称为请求跟踪链路( trace ),可以看出,一条链路是由多个部分组成,我们可以简单的把其中一个部分认为是一个 span。
|
|
|
|
|
|
|
|
|
|
跟 log 是对某个时间点的记录不同,span 记录的是一个时间段。当程序开始执行一系列任务时,span 就会开始,当这个系列任务结束后,span 也随之结束。
|
|
|
|
|
跟 log 是对某个时间点的记录不同,span 记录的是一个时间段。当程序开始执行一系列任务时,span 就会开始,当这一系列任务结束后,span 也随之结束。
|
|
|
|
|
|
|
|
|
|
由此可见,tracing 其实不仅仅是一个日志库,它还是一个分布式追踪的库,可以帮助我们采集信息,然后上传给 jaeger 等分布式追踪平台,最终实现对指定应用程序的监控。
|
|
|
|
|
|
|
|
|
|