同步函数或方法内如何调用异步方法

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

本文介绍了使用tokio、axum、tracing时如何打印入参的body参数,提供了示例代码,使用TraceLayer自定义日志记录行为并读取body。

🎯

关键要点

  • 使用tokio、axum、tracing时,打印入参的body参数需要处理异步读取。
  • 示例代码展示了如何初始化tracing_subscriber以记录日志。
  • 应用程序通过Router构建,并定义了一个路由处理函数。
  • TraceLayer由tower-http提供,支持自定义日志记录行为。
  • 可以使用make_span_with方法记录请求的相关信息。
  • on_request、on_response、on_body_chunk等方法允许在请求和响应的不同阶段记录信息。
  • 在on_request中可以使用hyper::body::to_bytes读取请求的body。
➡️

继续阅读