Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS SDK for Rust Menggunakan kerangka penelusuran
-
Dalam prompt perintah untuk direktori proyek Anda, tambahkan peti tracing-subscriber
sebagai dependensi: $
cargo add tracing-subscriber --features tracing-subscriber/env-filterIni menambahkan peti ke
[dependencies]
bagianCargo.toml
file Anda. -
Inisialisasi pelanggan. Biasanya ini dilakukan di awal
main
fungsi sebelum memanggil SDK apa pun untuk operasi Rust: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(()) }
-
Aktifkan logging menggunakan variabel
RUST_LOG
lingkungan. Untuk mengaktifkan tampilan informasi logging, dalam prompt perintah, atur variabelRUST_LOG
lingkungan ke tingkat yang ingin Anda log. Contoh berikut menetapkan logging kedebug
level:$
RUST_LOG=debug
-
Jalankan program:
$
cargo runAnda akan melihat output tambahan di jendela konsol atau terminal.
Untuk informasi selengkapnya, lihat memfilter peristiwa dengan variabel lingkungantracing-subscriber
dokumentasi.
Menafsirkan output log
Setelah Anda mengaktifkan logging dengan mengikuti langkah-langkah di bagian sebelumnya, informasi log tambahan akan dicetak ke standar secara default.
Jika Anda menggunakan format keluaran log default (disebut “penuh” oleh modul penelusuran), informasi yang Anda lihat di output log terlihat mirip dengan ini:
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
Setiap entri mencakup yang berikut:
-
Stempel waktu entri log.
-
Tingkat log entri. Ini adalah kata seperti
INFO
,DEBUG
, atauTRACE
. -
Kumpulan bentang
bersarang dari mana entri log dihasilkan, dipisahkan oleh titik dua (“:”). Ini membantu Anda mengidentifikasi sumber entri log. -
Jalur modul Rust yang berisi kode yang menghasilkan entri log.
-
Teks pesan log.
Format output standar modul tracing menggunakan kode escape ANSI untuk mewarnai output. Ingatlah urutan pelarian ini saat memfilter atau mencari output.
catatan
sdk_invocation_id
Yang muncul dalam kumpulan rentang bersarang adalah ID unik yang dihasilkan sisi klien oleh SDK untuk membantu mengkorelasikan pesan log. Ini tidak terkait dengan ID permintaan yang ditemukan dalam respons dari file Layanan AWS.
Sempurnakan level logging Anda
Jika Anda menggunakan peti yang mendukung pemfilteran lingkungan, sepertitracing_subscriber
, Anda dapat mengontrol verbositas log berdasarkan modul.
Anda dapat mengaktifkan level logging yang sama untuk setiap modul. Berikut ini menetapkan level logging trace
untuk setiap modul:
$
RUST_LOG=trace
cargo run
Anda dapat mengaktifkan pencatatan tingkat penelusuran untuk modul tertentu. Dalam contoh berikut, hanya log yang berasal dari yang aws_smithy_runtime
akan masuk pada trace
level.
$
RUST_LOG=aws_smithy_runtime
=trace
Anda dapat menentukan tingkat log yang berbeda untuk beberapa modul dengan memisahkannya dengan koma. Contoh berikut menyetel aws_config
modul ke trace
level logging, dan aws_smithy_runtime
modul ke debug
level logging.
$
RUST_LOG=aws_config
=trace
,aws_smithy_runtime
=debug
cargo run
Tabel berikut menjelaskan beberapa modul yang dapat Anda gunakan untuk memfilter pesan log:
Awalan | Deskripsi |
---|---|
|
Permintaan dan respons pencatatan kawat |
|
Pemuatan kredensil |
|
Permintaan penandatanganan dan permintaan kanonik |
Salah satu cara untuk mengetahui modul mana yang perlu Anda sertakan dalam output log Anda adalah dengan terlebih dahulu mencatat semuanya, lalu temukan nama peti di output log untuk informasi yang Anda butuhkan. Kemudian Anda dapat mengatur variabel lingkungan yang sesuai dan menjalankan program Anda lagi.