Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWS SDK para Rust Utiliza el marco de rastreo
-
En una línea de comandos para el directorio de su proyecto, añada la caja tracing-subscriber
como dependencia: $
cargo add tracing-subscriber --features tracing-subscriber/env-filterEsto añade la caja a la
[dependencies]
sección de tu archivo.Cargo.toml
-
Inicializa al suscriptor. Por lo general, esto se hace al principio de la
main
función antes de llamar a cualquier SDK para la operación de 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(()) }
-
Active el registro mediante la variable de
RUST_LOG
entorno. Para habilitar la visualización de la información de registro, en una línea de comandos, defina la variable deRUST_LOG
entorno en el que desee iniciar sesión. El siguiente ejemplo establece el registro en eldebug
nivel:$
RUST_LOG=debug
-
Ejecute el programa:
$
cargo runDebería ver un resultado adicional en la ventana de la consola o del terminal.
Para obtener más información, consulte el filtrado de eventos con variables de entornotracing-subscriber
documentación.
Interprete la salida del registro
Una vez que haya activado el registro siguiendo los pasos de la sección anterior, la información de registro adicional se imprimirá de forma estándar de forma predeterminada.
Si utilizas el formato de salida del registro predeterminado (denominado «completo» por el módulo de rastreo), la información que aparece en la salida del registro es similar a la siguiente:
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
Cada entrada incluye lo siguiente:
-
La marca de tiempo de la entrada del registro.
-
El nivel de registro de la entrada. Se trata de una palabra como
INFO
DEBUG
, oTRACE
. -
El conjunto anidado de intervalos a partir del
cual se generó la entrada de registro, separados por dos puntos («:»). Esto le ayuda a identificar el origen de la entrada de registro. -
La ruta del módulo Rust que contiene el código que generó la entrada de registro.
-
El texto del mensaje de registro.
Los formatos de salida estándar del módulo de rastreo utilizan códigos de escape ANSI para colorear la salida. Tenga en cuenta estas secuencias de escape al filtrar o buscar la salida.
nota
Lo sdk_invocation_id
que aparece dentro del conjunto anidado de intervalos es un identificador único generado por el SDK en el lado del cliente para ayudar a correlacionar los mensajes de registro. No está relacionado con el ID de solicitud que se encuentra en la respuesta de un. Servicio de AWS
Ajusta tus niveles de registro
Si utiliza una caja que admite el filtrado de un entorno, por ejemplotracing_subscriber
, puede controlar la verbosidad de los registros por módulo.
Puedes activar el mismo nivel de registro para todos los módulos. A continuación, se establece el nivel de registro trace
para cada módulo:
$
RUST_LOG=trace
cargo run
Puede activar el registro a nivel de rastreo para un módulo específico. En el siguiente ejemplo, solo los registros de origen aws_smithy_runtime
entrarán en el niveltrace
.
$
RUST_LOG=aws_smithy_runtime
=trace
Puede especificar un nivel de registro diferente para varios módulos separándolos con comas. El siguiente ejemplo establece el aws_config
módulo para trace
nivelar el registro y el aws_smithy_runtime
módulo para debug
nivelar el registro.
$
RUST_LOG=aws_config
=trace
,aws_smithy_runtime
=debug
cargo run
En la siguiente tabla se describen algunos de los módulos que puede utilizar para filtrar los mensajes de registro:
Prefijo | Descripción |
---|---|
|
Registro de transferencias de solicitudes y respuestas |
|
Carga de credenciales |
|
Solicita solicitudes de firma y canónicas |
Una forma de averiguar qué módulos debes incluir en el resultado del registro es registrarlo todo primero y, a continuación, buscar el nombre de la caja en el resultado del registro para obtener la información que necesitas. A continuación, puede configurar la variable de entorno en consecuencia y volver a ejecutar el programa.