Partager via


Utiliser des niveaux de journal filtrés

Le générateur d’API de données (DAB) prend en charge les niveaux de journal personnalisables et filtrés pour vous aider à contrôler la détail et le focus des journaux. Cela vous permet d’obtenir des diagnostics détaillés sur des composants spécifiques tout en conservant d’autres domaines plus silencieux, ce qui améliore votre expérience de débogage et de supervision.

Les paramètres de journalisation sont configurés dans la runtime.telemetry.log-level section de votre configuration. Vous pouvez spécifier des niveaux de journal globalement ou cibler des espaces de noms ou des classes spécifiques pour un contrôle affiné.

Priorités au niveau du journal

  • L’espace de noms ou le nom de classe le plus spécifique est prioritaire.

  • La default clé définit le niveau de base de tous les autres composants non répertoriés explicitement.

  • S’il est omis, DAB utilise des niveaux par défaut en fonction du mode hôte :

    • development mode par défaut Debug (détaillé)
    • production mode par défaut ( Error moins détaillé)

Niveaux de journal pris en charge

  • Trace: Capturez les informations les plus détaillées et affinées, généralement utiles uniquement pour la résolution approfondie des problèmes ou la compréhension de chaque étape d’un processus.
  • Debug: fournissez des informations détaillées destinées au diagnostic des problèmes et à la compréhension du flux pendant le développement.
  • Information: Enregistrez des événements généraux et généraux qui décrivent des opérations et des jalons normaux.
  • Warning: indiquez des situations inattendues ou des problèmes mineurs qui n’arrêtent pas le traitement, mais peuvent nécessiter une attention particulière.
  • Error: échecs de journal qui empêchent l’exécution d’une opération correctement, mais ne bloquent pas le système.
  • Critical: signalez des problèmes graves qui provoquent une défaillance du système ou d’une fonctionnalité majeure et nécessitent une intervention immédiate.
  • None: désactivez la journalisation pour supprimer tous les messages de la catégorie ou du composant ciblé.

Les correspondances partielles des noms d’espaces de noms sont prises en charge, mais doivent se terminer par un . séparateur. 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"
      }
    }
  }
}

Dans cet exemple :

  • Les journaux d’activité de RuntimeConfigValidator la classe sont affichés au Debug niveau.
  • Autres classes sous Azure.DataApiBuilder.Core niveau d’utilisation Information .
  • Tous les autres journaux par défaut sont au Warning niveau.

Hot-reload support

Vous pouvez mettre à jour les niveaux de journal de manière dynamique (rechargement à chaud) dans les modes de développement et de production sans redémarrer l’application. Cela permet d’ajuster la journalisation à la volée pour résoudre les problèmes.

Espaces de noms importants pour le filtrage

Certains espaces de noms/classes courants que vous souhaiterez peut-être filtrer :

  • 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