Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Kit AWS SDK pour Rust Utilise le cadre de suivi
-
Dans une invite de commande pour le répertoire de votre projet, ajoutez la caisse tracing-subscriber
en tant que dépendance : $
cargo add tracing-subscriber --features tracing-subscriber/env-filterCela ajoute la caisse à la
[dependencies]
section de votreCargo.toml
fichier. -
Initialisez l'abonné. Habituellement, cela se fait au début de la
main
fonction avant d'appeler un SDK pour une opération 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(()) }
-
Activez la journalisation à l'aide d'une variable d'
RUST_LOG
environnement. Pour activer l'affichage des informations de journalisation, dans une invite de commande, définissez la variable d'RUST_LOG
environnement au niveau auquel vous souhaitez vous connecter. L'exemple suivant définit la journalisation audebug
niveau suivant :$
RUST_LOG=debug
-
Exécutez le programme :
$
cargo runVous devriez voir une sortie supplémentaire dans la console ou dans la fenêtre du terminal.
Pour plus d'informations, consultez la section Filtrage des événements à l'aide de variables d'environnementtracing-subscriber
documentation.
Interpréter la sortie du journal
Une fois que vous avez activé la journalisation en suivant les étapes de la section précédente, les informations de journal supplémentaires seront imprimées en standard par défaut.
Si vous utilisez le format de sortie de journal par défaut (appelé « complet » par le module de suivi), les informations que vous voyez dans la sortie du journal ressemblent à ceci :
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
Chaque entrée inclut les éléments suivants :
-
Horodatage de l'entrée du journal.
-
Le niveau de journalisation de l'entrée. Il s'agit d'un mot tel que
INFO
DEBUG
, ouTRACE
. -
Ensemble imbriqué de plages à partir duquel
l'entrée du journal a été générée, séparées par des deux-points (« : »). Cela vous permet d'identifier la source de l'entrée du journal. -
Le chemin du module Rust contenant le code qui a généré l'entrée du journal.
-
Texte du message du journal.
Les formats de sortie standard du module de traçage utilisent des codes d'échappement ANSI pour coloriser la sortie. Gardez ces séquences d'échappement à l'esprit lorsque vous filtrez ou recherchez la sortie.
Note
Dans sdk_invocation_id
l'ensemble imbriqué de plages apparaît un identifiant unique généré côté client par le SDK pour aider à corréler les messages du journal. Il n'est pas lié à l'ID de demande trouvé dans la réponse d'un Service AWS.
Ajustez vos niveaux de journalisation
Si vous utilisez une caisse qui prend en charge un filtrage d'environnement, par exempletracing_subscriber
, vous pouvez contrôler la verbosité des journaux par module.
Vous pouvez activer le même niveau de journalisation pour chaque module. Ce qui suit définit le niveau de journalisation trace
pour chaque module :
$
RUST_LOG=trace
cargo run
Vous pouvez activer la journalisation au niveau du traçage pour un module spécifique. Dans l'exemple suivant, seuls les journaux provenant de aws_smithy_runtime
seront entrés au trace
niveau.
$
RUST_LOG=aws_smithy_runtime
=trace
Vous pouvez spécifier un niveau de journalisation différent pour plusieurs modules en les séparant par des virgules. L'exemple suivant définit le aws_config
module sur la journalisation de trace
niveau et le aws_smithy_runtime
module sur la journalisation de debug
niveau.
$
RUST_LOG=aws_config
=trace
,aws_smithy_runtime
=debug
cargo run
Le tableau suivant décrit certains des modules que vous pouvez utiliser pour filtrer les messages du journal :
Préfixe | Description |
---|---|
|
Enregistrement des câbles relatifs aux demandes et aux réponses |
|
Chargement des identifiants |
|
Signature de demandes et demandes canoniques |
Pour déterminer quels modules vous devez inclure dans la sortie de votre journal, vous pouvez d'abord tout enregistrer, puis trouver le nom de la caisse dans le résultat du journal contenant les informations dont vous avez besoin. Vous pouvez ensuite définir la variable d'environnement en conséquence et exécuter à nouveau votre programme.