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á.
Configurar e usar o registro em log no AWS SDK para Rust
O AWS SDK para Rust usa a estrutura de rastreamentotracing-subscriber e inicialize-a na aplicação do Rust. Os logs incluem registros de data e hora, níveis de log e caminhos de módulos, ajudando a depurar solicitações de API e comportamento do SDK. Use a variável de ambiente RUST_LOG para controlar o detalhamento do log, filtrando por módulo, se necessário.
Como habilitar o registro em log no AWS SDK para Rust
-
Em um prompt de comando para o diretório do projeto, adicione a caixa tracing-subscriber
como uma dependência: $cargo add tracing-subscriber --features tracing-subscriber/env-filterIsso adiciona a caixa à seção
[dependencies]do seu arquivoCargo.toml. -
Inicialize o assinante. Normalmente, isso é feito no início da função
main, antes de chamar qualquer operação de SDK para 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(()) } -
Habilite o registro em log usando a variável de ambiente
RUST_LOG. Para habilitar a exibição de informações do registro em log, em um prompt de comando, defina a variável de ambienteRUST_LOGpara o nível em que você deseja registrar. O seguinte exemplo define o nível de registro em log comodebug: -
Execute o programa:
$cargo runUma saída adicional na janela do console ou do terminal deve ser exibida.
Para obter mais informações, consulte filtragem de eventos com variáveis de ambientetracing-subscriber.
Interpretar a saída do log
Após habilitar o registro em log seguindo as etapas da seção anterior, as informações adicionais de log serão impressas de forma padronizada por padrão.
Se você estiver usando o formato de saída de log padrão (chamado de “completo” pelo módulo de rastreamento), as informações que você vê na saída do log 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 log.
-
O nível de log da entrada. É uma palavra como
INFO,DEBUGouTRACE. -
O conjunto aninhado de extensões
a partir das quais a entrada do log foi gerada, separados por dois pontos (“:”). Isso ajuda você a identificar a origem da entrada de log. -
O caminho do módulo do Rust que contém o código que gerou a entrada de log.
-
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 no lado do cliente pelo SDK para ajudar a correlacionar as mensagens de log. Ele não está relacionado ao ID da solicitação encontrado na resposta de um AWS service (Serviço da AWS).
Ajustar os níveis de registro em log
Se você usar uma caixa que ofereça suporte a uma filtragem de ambiente, como tracing_subscriber, é possível controlar o detalhamento dos logs por módulo.
Você pode habilitar o mesmo nível de registro em log para cada módulo. O seguinte define o nível de registro em log para trace em cada módulo:
$RUST_LOG=tracecargo run
Você pode habilitar o registro em log em nível de rastreamento em um módulo específico. No exemplo a seguir, somente os logs provenientes de aws_smithy_runtime entrarão no nível trace.
$RUST_LOG=aws_smithy_runtime=trace
É possível especificar um nível de log diferente para vários módulos separando-os por vírgulas. O exemplo a seguir define o módulo aws_smithy_runtime para o nível debug de registro em log, e o módulo aws_config para o nível trace de registro em log.
$RUST_LOG=aws_config=trace,aws_smithy_runtime=debugcargo run
A seguinte tabela descreve alguns dos módulos que você pode usar para filtrar mensagens de log:
| Prefixo | Descrição |
|---|---|
|
|
Registro em log de conexões de solicitações e respostas |
|
|
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 necessárias. Em seguida, você pode definir a variável de ambiente de acordo e executar o programa novamente.