翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
は、ログ記録に トレース
-
プロジェクトディレクトリのコマンドプロンプトで、トレースサブスクライブク
レートを依存関係として追加します。 $
cargo add tracing-subscriber --features tracing-subscriber/env-filterこれにより、
Cargo.toml
ファイルの[dependencies]
セクションに木箱が追加されます。 -
サブスクライバーを初期化します。通常、これは SDK for Rust オペレーションを呼び出す前に
main
、関数の早い段階で行われます。use aws_config::BehaviorVersion; type BoxError = Box<dyn Error + Send + Sync>; #[tokio::main] async fn main() -> Result<(), BoxError> { tracing_subscriber::fmt::init(); // Initialize the subscriber. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config); let _resp = s3.list_buckets() .send() .await?; Ok(()) }
-
RUST_LOG
環境変数を使用してログ記録を有効にします。ログ情報の表示を有効にするには、コマンドプロンプトで、RUST_LOG
環境変数をログインするレベルに設定します。次の例では、ログ記録をdebug
レベルに設定します。$
RUST_LOG=debug
-
プログラムを実行します。
$
cargo runコンソールまたはターミナルウィンドウに追加の出力が表示されます。
詳細については、 tracing-subscriber
ドキュメントの「環境変数を使用したイベントのフィルタリング
ログ出力の解釈
前のセクションの手順に従ってログ記録を有効にすると、デフォルトで追加のログ情報が標準出力に出力されます。
デフォルトのログ出力形式 (トレースモジュールでは「フル」と呼ばれます) を使用している場合、ログ出力に表示される情報は次のようになります。
2024-06-25T16:10:12.367482Z DEBUG invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt:lazy_load_identity: aws_smithy_runtime::client::identity::cache::lazy: identity cache miss occurred; added new identity (took 480.892ms) new_expiration=2024-06-25T23:07:59Z valid_for=25066.632521s partition=IdentityCachePartition(7) 2024-06-25T16:10:12.367602Z DEBUG invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::identity::cache::lazy: loaded identity 2024-06-25T16:10:12.367643Z TRACE invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::auth: resolved identity identity=Identity { data: Credentials {... }, expiration: Some(SystemTime { tv_sec: 1719356879, tv_nsec: 0 }) } 2024-06-25T16:10:12.367695Z TRACE invoke{service=s3 operation=ListBuckets sdk_invocation_id=3434933}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::auth: signing request
各エントリには以下が含まれます。
-
ログエントリのタイムスタンプ。
-
エントリのログレベル。これは、
INFO
、、DEBUG
などの単語ですTRACE
。 -
ログエントリが生成されたネストされたスパン
のセット。コロン ("") で区切られます。これにより、ログエントリのソースを識別できます。 -
ログエントリを生成したコードを含む Rust モジュールパス。
-
ログメッセージテキスト。
トレースモジュールの標準出力形式は、ANSI エスケープコードを使用して出力を色分けします。出力をフィルタリングまたは検索するときは、これらのエスケープシーケンスに注意してください。
注記
ネストされたスパンのセット内sdk_invocation_id
に表示される は、ログメッセージを関連付けるために SDK によって生成された一意の ID です。これは、 からのレスポンスで見つかったリクエスト ID とは関係ありません AWS のサービス。
ログ記録レベルを微調整する
などの環境フィルタリングをサポートする木箱を使用する場合はtracing_subscriber
、モジュールごとにログの詳細度を制御できます。
すべてのモジュールで同じログ記録レベルを有効にできます。以下は、すべてのモジュールのログ記録レベルを trace
に設定します。
$
RUST_LOG=trace
cargo run
特定のモジュールのトレースレベルのログ記録を有効にできます。次の例では、 からのログのみが trace
レベルでaws_smithy_runtime
提供されます。
$
RUST_LOG=aws_smithy_runtime
=trace
複数のモジュールに異なるログレベルを指定するには、カンマで区切ります。次の例では、 aws_config
モジュールをtrace
レベルロギングに設定し、 aws_smithy_runtime
モジュールをdebug
レベルロギングに設定します。
$
RUST_LOG=aws_config
=trace
,aws_smithy_runtime
=debug
cargo run
次の表は、ログメッセージのフィルタリングに使用できるモジュールの一部を示しています。
Prefix | 説明 |
---|---|
|
リクエストとレスポンスのワイヤログ記録 |
|
認証情報のロード |
|
リクエスト署名と正規リクエスト |
ログ出力に含める必要があるモジュールを特定する 1 つの方法は、まずすべてをログに記録し、次に必要な情報のログ出力で木箱名を見つけることです。その後、それに応じて環境変数を設定し、プログラムを再度実行できます。