Compartilhar via


Usar níveis de log filtrados

O DAB (Construtor de API de Dados) dá suporte a níveis de log personalizáveis e filtrados para ajudá-lo a controlar a verbosidade e o foco dos logs. Isso permite que você obtenha diagnósticos detalhados sobre componentes específicos, mantendo outras áreas mais silenciosas, melhorando sua experiência de depuração e monitoramento.

As configurações de log são configuradas na runtime.telemetry.log-level seção de sua configuração. Você pode especificar níveis de log globalmente ou direcionar namespaces ou classes específicas para controle refinado.

Prioridades de nível de log

  • O nome de classe ou namespace mais específico tem precedência.

  • A default chave define o nível base para todos os outros componentes não listados explicitamente.

  • Se omitido, o DAB usará níveis padrão com base no modo de host:

    • development o modo padrão é Debug (detalhado)
    • production o modo usa Error como padrão (menos detalhado)

Níveis de log com suporte

  • Trace: capture as informações mais detalhadas e refinadas, geralmente apenas úteis para solução de problemas profundas ou compreensão de cada etapa em um processo.
  • Debug: forneça informações detalhadas destinadas a diagnosticar problemas e entender o fluxo durante o desenvolvimento.
  • Information: registre eventos gerais e de alto nível que descrevem operações normais e marcos.
  • Warning: indique situações inesperadas ou problemas menores que não param de processar, mas podem exigir atenção.
  • Error: falhas de log que impedem que uma operação seja concluída com êxito, mas não travam o sistema.
  • Critical: relatar problemas graves que causam falha no sistema ou em recursos principais e exigem intervenção imediata.
  • None: desabilite o registro em log para suprimir todas as mensagens para a categoria ou componente de destino.

Há suporte para correspondências parciais de nomes de namespace, mas devem terminar em um . separador. For example:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator
  • Azure.DataApiBuilder.Core
  • default

Example configuration

{
  "runtime": {
    "telemetry": {
      "log-level": {
        "Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "Debug",
        "Azure.DataApiBuilder.Core": "Information",
        "default": "Warning"
      }
    }
  }
}

Neste exemplo:

  • Os logs da RuntimeConfigValidator classe são mostrados no Debug nível.
  • Outras classes em Azure.DataApiBuilder.Core nível de uso Information .
  • Todos os outros logs padrão para nivelar Warning .

Hot-reload support

Você pode atualizar os níveis de log dinamicamente (recarregamento frequente) nos modos de desenvolvimento e produção sem reiniciar o aplicativo. Isso ajuda a ajustar o log em tempo real para solucionar problemas.

Namespaces importantes para filtragem

Alguns namespaces/classes comuns que talvez você queira filtrar:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter
  • Azure.DataApiBuilder.Service.Controllers.RestController
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler
  • default