選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

啟用 適用於 Rust 的 AWS SDK 程式碼記錄

焦點模式
啟用 適用於 Rust 的 AWS SDK 程式碼記錄 - 適用於 Rust 的 AWS SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 Rust 的 AWS SDK 使用追蹤架構進行記錄。

  1. 在專案目錄的命令提示中,新增追蹤訂閱者目錄做為相依性:

    $ cargo add tracing-subscriber --features tracing-subscriber/env-filter

    這會將 條板箱新增至 Cargo.toml 檔案的 [dependencies]區段。

  2. 初始化訂閱者。通常在 main函式的早期完成,然後再呼叫任何適用於 Rust 的 SDK 操作:

    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(()) }
  3. 使用RUST_LOG環境變數開啟記錄。若要啟用記錄資訊的顯示,請在命令提示中,將RUST_LOG環境變數設定為您要記錄的層級。下列範例會將記錄設定為 debug層級:

    Linux/macOS
    $ RUST_LOG=debug
    Windows

    如果您使用的是 VSCode,終端機視窗通常會預設為 PowerShell。驗證您正在使用的提示類型。

    C:\> set RUST_LOG=debug
    PowerShell
    PS C:\> $ENV:RUST_LOG="debug"
    $ RUST_LOG=debug
  4. 執行程式:

    $ 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

每個項目都包含下列項目:

  • 日誌項目的時間戳記。

  • 項目的日誌層級。這是 INFODEBUG或 等單字TRACE

  • 產生日誌項目的巢狀範圍集,以冒號 (":") 分隔。這可協助您識別日誌項目的來源。

  • Rust 模組路徑,其中包含產生日誌項目的程式碼。

  • 記錄訊息文字。

追蹤模組的標準輸出格式使用 ANSI 逸出碼來將輸出著色。篩選或搜尋輸出時,請記住這些逸出序列。

注意

在巢狀範圍集中sdk_invocation_id出現的 是 SDK 產生的唯一 ID 用戶端,可協助建立日誌訊息的關聯。它與 回應中找到的請求 ID 無關 AWS 服務。

微調您的記錄層級

如果您使用支援環境篩選的 條板箱,例如 tracing_subscriber,您可以依模組控制日誌的真實性。

您可以為每個模組開啟相同的記錄層級。下列會將trace每個模組的記錄層級設定為 :

$ RUST_LOG=trace cargo run

您可以開啟特定模組的追蹤層級記錄。在下列範例中,只有來自 的日誌aws_smithy_runtime才會進入trace關卡。

$ RUST_LOG=aws_smithy_runtime=trace

您可以為多個模組指定不同的日誌層級,方法是使用逗號分隔它們。下列範例會將aws_config模組設定為trace關卡記錄,並將aws_smithy_runtime模組設定為debug關卡記錄。

$ RUST_LOG=aws_config=trace,aws_smithy_runtime=debug cargo run

下表說明可用來篩選日誌訊息的一些模組:

字首 描述

aws_smithy_runtime

請求和回應線路記錄

aws_config

登入資料載入

aws_sigv4

請求簽署和正式請求

找出您需要在日誌輸出中包含哪些模組的一種方法是先記錄所有項目,然後在日誌輸出中找到所需資訊的條板箱名稱。然後,您可以相應地設定環境變數,然後再次執行您的程式。

下一個主題:

覆寫操作組態

上一個主題:

可觀測性

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。