トレース
tracing は、Rust プログラムに計装を行って
構造化されたイベントベースの診断情報を収集するためのフレームワークです。これは、従来の
log クレートの代替であり、後方互換性を保つためのアダプターも備えています。
アプリケーションでトレースを有効にするには、次のクレートをプロジェクトに追加します:
cargo add tracing tracing-subscriber
ライブラリでは、通常 tracing-subscriber は必要ありません。
コンソールにログメッセージを出力する
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: これはトレースメッセージです。