Compartir a través de


Configurar los niveles de registro en Data API Builder

Data API Builder (DAB) admite niveles de registro de logs filtrados para controlar la verbosidad. Puede establecer un nivel global y sobrescribir espacios de nombres o clases específicos para diagnósticos centrados.

Diagrama que muestra el flujo de filtrado de nivel de registro.

Los valores de registro se configuran en la sección de la runtime.telemetry.log-level configuración. Puede especificar los niveles de registro globalmente o establecer como destino espacios de nombres o clases específicos para el control específico.

Prerrequisitos

  • Archivo de configuración DAB existente.

Ejecutar herramienta

Use dab configure para establecer niveles de registro en el archivo de configuración.

Configuración de los niveles de registro

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 DAB.

dab start

Registro de pruebas

  1. Envíe una solicitud a la API.

  2. Confirme que los registros coinciden con los niveles configurados.

Configuración

Agregue una log-level sección debajo de runtime.telemetry en el archivo de configuración.

Prioridades de nivel de registro

El espacio de nombres o el nombre de clase más específicos tienen prioridad. La default clave establece el nivel base para todos los demás componentes no enumerados explícitamente.

Si se omite, DAB usa niveles predeterminados en función del modo host:

  • development el valor predeterminado del modo es Debug.
  • production el valor predeterminado del modo es Error.

Niveles de registro admitidos

  • Trace: información más detallada, normalmente para la solución de problemas profunda.
  • Debug: información detallada para diagnosticar problemas durante el desarrollo.
  • Information: eventos generales de alto nivel que describen las operaciones normales.
  • Warning: situaciones inesperadas o problemas menores que pueden requerir atención.
  • Error: errores que impiden que una operación se complete correctamente.
  • Critical: problemas críticos que provocan un fallo del sistema o de características principales.
  • None: Deshabilitar el registro de eventos para la categoría o componente objetivo.

Se admiten coincidencias parciales de nombres de espacio de nombres, pero deben terminar en un . separador. Por ejemplo:

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

Configuración de ejemplo

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

En este ejemplo, los registros de RuntimeConfigValidator usan Debug, otras clases en Azure.DataApiBuilder.Core usan Information, y todos los demás registros se predeterminan a Warning.

Command-line

Configure los niveles de logs a través 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

Configuración resultante

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

Compatibilidad con recarga caliente

Puede actualizar los niveles de registro dinámicamente (recarga activa) en los modos de desarrollo y producción sin reiniciar la aplicación. Esto ayuda a ajustar el registro sobre la marcha para solucionar problemas.

Espacios de nombres importantes para el filtrado

Algunos espacios de nombres y clases comunes que puede filtrar o excluir y por qué:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: diagnosticar problemas de validación de configuración y errores de esquema.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: investigue el comportamiento de ejecución y generación de consultas SQL.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: realice un seguimiento de la ejecución y el tiempo de la base de datos para las llamadas de consulta.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: Solucionar problemas de composición del informe del punto de conexión de salud.
  • Azure.DataApiBuilder.Service.Controllers.RestController: inspeccione los errores de enrutamiento de solicitudes REST y de nivel de controlador.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: depuración de decisiones de autorización y evaluación de roles.
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: Investigue el comportamiento de la canalización de autorización de ASP.NET Core.
  • default: establezca el nivel de línea base para todas las demás categorías no enumeradas explícitamente.