Compartilhar via


Configurar níveis de log no Construtor de API de Dados

O DAB (Construtor de API de Dados) dá suporte a níveis de log filtrados para controlar a verbosidade. Você pode definir um nível global e substituir namespaces ou classes específicos para diagnósticos focados.

Diagrama mostrando o fluxo de filtragem no nível do log.

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.

Pré-requisitos

  • Arquivo de configuração do DAB existente.

Executar ferramenta

Use dab configure para definir níveis de log no arquivo de configuração.

Configurar os níveis de log

dab configure \
  --runtime.telemetry.log-level.default Warning \
  --runtime.telemetry.log-level.Azure.DataApiBuilder.Core Information \
  --runtime.telemetry.log-level.Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator Debug

Inicie o DAB.

dab start

Log de teste

  1. Envie uma solicitação para sua API.

  2. Confirme se os logs correspondem aos níveis configurados.

Configuração

Adicione uma log-level seção sob runtime.telemetry em seu arquivo de configuração.

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.
  • production o modo padrão é Error.

Níveis de log com suporte

  • Trace: informações mais detalhadas, normalmente para solução de problemas profundas.
  • Debug: informações detalhadas sobre como diagnosticar problemas durante o desenvolvimento.
  • Information: eventos gerais de alto nível que descrevem operações normais.
  • Warning: situações inesperadas ou problemas menores que podem exigir atenção.
  • Error: falhas que impedem que uma operação seja concluída com êxito.
  • Critical: problemas graves que causam falha no sistema ou no recurso principal.
  • None: desabilite o registro em log para a categoria ou componente de destino.

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

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

Configuração de exemplo

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

Neste exemplo, logs de RuntimeConfigValidator usam Debug, outras classes em Azure.DataApiBuilder.Core usam Information, e todos os outros logs usam Warning por padrão.

Command-line

Configurar níveis de log por meio de dab configure.

  • --runtime.telemetry.log-level.default
  • --runtime.telemetry.log-level.<namespace-or-class>

Example

dab configure \
  --runtime.telemetry.log-level.default Warning \
  --runtime.telemetry.log-level.Azure.DataApiBuilder.Core Information \
  --runtime.telemetry.log-level.Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator Debug

Configuração resultante

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

Suporte para recarregamento frequente

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 e classes comuns que talvez você queira filtrar e por que:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: diagnosticar problemas de validação de configuração e erros de esquema.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: investigue o comportamento de geração e execução de consulta SQL.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: rastrear a execução do banco de dados e o tempo para chamadas de consulta.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: solucionar problemas na composição do relatório do endpoint de integridade.
  • Azure.DataApiBuilder.Service.Controllers.RestController: inspecione o roteamento de solicitação REST e erros no nível do controlador.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: depurar decisões de autorização e avaliação de função.
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: investigue o comportamento do pipeline de autorização do ASP.NET Core.
  • default: defina o nível de linha de base para todas as outras categorias não explicitamente listadas.