As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Ativar o registro do AWS SDK para Rust código
O AWS SDK para Rust usa a estrutura de rastreamento
-
Em um prompt de comando para o diretório do seu projeto, adicione a caixa tracing-subscriber
como uma dependência: $
cargo add tracing-subscriber --features tracing-subscriber/env-filterIsso adiciona a caixa à
[dependencies]
seção do seuCargo.toml
arquivo. -
Inicialize o assinante. Normalmente, isso é feito no início da
main
função, antes de chamar qualquer SDK para a operação do 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(()) }
-
Ative o registro usando a variável de
RUST_LOG
ambiente. Para habilitar a exibição de informações de registro, em um prompt de comando, defina a variável deRUST_LOG
ambiente para o nível em que você deseja fazer login. O exemplo a seguir define o registro nodebug
nível: -
Execute o programa:
$
cargo runVocê deve ver uma saída adicional na janela do console ou do terminal.
Para obter mais informações, consulte filtragem de eventos com variáveis de ambientetracing-subscriber
documentação.
Interprete a saída do log
Depois de ativar o registro seguindo as etapas da seção anterior, as informações adicionais de registro serão impressas de forma padronizada por padrão.
Se você estiver usando o formato de saída de registro padrão (chamado de “completo” pelo módulo de rastreamento), as informações que você vê na saída de registro serão semelhantes a estas:
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 inclui o seguinte:
-
O carimbo de data/hora da entrada do registro.
-
O nível de registro da entrada. Esta é uma palavra como
INFO
,DEBUG
, ouTRACE
. -
O conjunto aninhado de extensões a
partir do qual a entrada de registro foi gerada, separados por dois pontos (“:”). Isso ajuda você a identificar a origem da entrada do registro. -
O caminho do módulo Rust contendo o código que gerou a entrada do registro.
-
O texto da mensagem de log.
Os formatos de saída padrão do módulo de rastreamento usam códigos de escape ANSI para colorir a saída. Lembre-se dessas sequências de escape ao filtrar ou pesquisar a saída.
nota
O sdk_invocation_id
que aparece no conjunto aninhado de extensões é um ID exclusivo gerado pelo lado do cliente pelo SDK para ajudar a correlacionar as mensagens de log. Não está relacionado ao ID da solicitação encontrado na resposta de um AWS service (Serviço da AWS).
Ajuste seus níveis de registro
Se você usar uma caixa que ofereça suporte a uma filtragem de ambiente, como, por exemplotracing_subscriber
, você pode controlar a verbosidade dos registros por módulo.
Você pode ativar o mesmo nível de registro para cada módulo. O seguinte define o nível de registro trace
para cada módulo:
$
RUST_LOG=trace
cargo run
Você pode ativar o registro em nível de rastreamento para um módulo específico. No exemplo a seguir, somente os registros provenientes de aws_smithy_runtime
entrarão no trace
nível.
$
RUST_LOG=aws_smithy_runtime
=trace
Você pode especificar um nível de registro diferente para vários módulos separando-os com vírgulas. O exemplo a seguir define o aws_config
módulo para registro em trace
nível e o aws_smithy_runtime
módulo para registro em debug
nível.
$
RUST_LOG=aws_config
=trace
,aws_smithy_runtime
=debug
cargo run
A tabela a seguir descreve alguns dos módulos que você pode usar para filtrar mensagens de log:
Prefixo | Descrição |
---|---|
|
Registro telefônico de solicitação e resposta |
|
Carregamento de credenciais |
|
Solicitar assinatura e solicitações canônicas |
Uma maneira de descobrir quais módulos você precisa incluir na saída do log é primeiro registrar tudo e, em seguida, encontrar o nome da caixa na saída do log para obter as informações de que você precisa. Em seguida, você pode definir a variável de ambiente adequadamente e executar seu programa novamente.