Back to list
zenn_feed 2026年4月25日

Rust の tracing で init() 実行だけで info!() が機能する仕組みの理解

Rust の tracing で init() しただけで info!() が動く仕組みを理解する

Translated: 2026/4/25 2:01:37
rusttracingtokioasync-asynclogging

Japanese Translation

はじめに こんにちは、ソフトウェアエンジニアの mosson です。株式会社 estie(エスティ)では Rust でウェブアプリケーションの開発を行っています。 さて、Rust でウェブアプリケーションを開発している際に、アプリケーションの起動処理にこのようなコードを見かけることがあります。 ```rust #[tokio::main] async fn main() { tracing_subscriber::fmt().init(); run_server().await; } ``` `init()` はこのスコープ内でのみ完了しており、その戻り値を変数に割り当てるなどの処理も行われていません。それにもかかわらず、全く異なる関数内部で...

Original Content

はじめに こんにちは、ソフトウェアエンジニアの mosson です。株式会社estie(エスティ)では Rust でウェブアプリケーションの開発をしています。 さて、Rust でウェブアプリケーションを開発していると、アプリケーションの起動処理にこのようなコードを見かけます。 #[tokio::main] async fn main() { tracing_subscriber::fmt().init(); run_server().await; } init() はこのスコープで完結しています。戻り値を変数に束縛すらしていません。それなのに、まったく別の関数の中で...