首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rust axum / hyper请求局部变量

Rust axum / hyper请求局部变量
EN

Stack Overflow用户
提问于 2021-09-25 18:17:07
回答 1查看 130关注 0票数 0

有没有办法将变量绑定到Axum请求?

特别是,我尝试将请求id添加到每个跟踪事件中。我可以用tower::trace中间件这样做:

代码语言:javascript
复制
#[derive(Clone)]
pub struct RequestSpan;

impl<B> tower_http::trace::MakeSpan<B> for RequestSpan {
    fn make_span(&mut self, request: &http::Request<B>) -> tracing::Span {
        tracing::error_span!(
            "rq",
            id = %ulid::Ulid::new().to_string(),
            method = %request.method(),
            uri = %request.uri(),
            version = ?request.version(),
        )
    }
}

...

let middleware_stack = tower::ServiceBuilder::new()
    .layer(TraceLayer::new_for_http().make_span_with(RequestSpan))

它在服务器范围内工作,但我还需要将请求id传递到外部任务队列中。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-29 07:42:05

按照rustlang forum的解决方案,我已经把它变成了一个little crate

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69328888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档