Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

トレース

tracing は、Rust プログラムに計装を行って 構造化されたイベントベースの診断情報を収集するためのフレームワークです。これは、従来の log クレートの代替であり、後方互換性を保つためのアダプターも備えています。

アプリケーションでトレースを有効にするには、次のクレートをプロジェクトに追加します:

cargo add tracing tracing-subscriber

ライブラリでは、通常 tracing-subscriber は必要ありません。

コンソールにログメッセージを出力する

tracing-badge tracing-subscriber-badge cat-debugging-badge

tracing クレートは、トレーシングサブスクライバーにログイベントを送出するためのマクロを提供します。 tracing-subscriber クレートは、イベントの送信先を設定します。デフォルトのトレーシング サブスクライバーをインストールするには、tracing_subscriber::fmt::init() を呼び出します。

use tracing::{debug, error, info, trace, warn};

fn main() {
    tracing_subscriber::fmt::init();

    error!("This is an error!");
    warn!("This is a warning.");
    info!("This is an informational message.");

    // with the default configuration, debug! and trace! messages are not shown
    debug!("This is a debug message.");
    trace!("This is a trace message.");
}

#[test]
fn test_main() {
    main();
}

デフォルトのログレベルは INFO です。Tracing は、それより低いレベルで記録されたイベントを破棄します。このコードを実行すると、 次の内容がコンソールに出力されます:

2024-12-01T07:56:14.778440Z ERROR tracing_console: これはエラーです!
2024-12-01T07:56:14.778568Z  WARN tracing_console: これは警告です。
2024-12-01T07:56:14.778596Z  INFO tracing_console: これは情報メッセージです。

より詳細なデフォルトレベルを設定するには、RUST_LOG 環境変数を設定します:

RUST_LOG=trace cargo run --example log-debug

Cargo は、上記の行に加えて次の追加の行を出力します:

2024-12-01T07:56:14.778613Z DEBUG tracing_console: これはデバッグメッセージです。
2024-12-01T07:56:14.778640Z TRACE tracing_console: これはトレースメッセージです。