Condividi tramite


Configurare i livelli di log in Generatore API dati

Il generatore di API dati (DAB) supporta livelli di log filtrati per controllare la verbosità. È possibile impostare un livello globale ed eseguire l'override di spazi dei nomi o classi specifici per la diagnostica mirata.

Diagramma che mostra il flusso di filtro a livello di log.

Le impostazioni di registrazione vengono configurate nella runtime.telemetry.log-level sezione della configurazione. È possibile specificare livelli di log a livello globale o specificare classi o spazi dei nomi specifici per il controllo con granularità fine.

Prerequisiti

  • File di configurazione DAB esistente.

Eseguire lo strumento

Usare dab configure per impostare i livelli di log nel file di configurazione.

Configurare i livelli di 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

Avvia DAB.

dab start

Registrazione dei test

  1. Inviare una richiesta all'API.

  2. Verificare che i log corrispondano ai livelli configurati.

Configurazione

Aggiungere una log-level sezione sotto runtime.telemetry nel file di configurazione.

Priorità a livello di log

Il nome dello spazio dei nomi o della classe più specifico ha la precedenza. La default chiave imposta il livello di base per tutti gli altri componenti non elencati in modo esplicito.

Se omesso, DAB usa i livelli predefiniti in base alla modalità host:

  • development la modalità predefinita è Debug.
  • production la modalità predefinita è Error.

Livelli di log supportati

  • Trace: informazioni più dettagliate, in genere per la risoluzione dei problemi più approfondita.
  • Debug: informazioni dettagliate per la diagnosi dei problemi durante lo sviluppo.
  • Information: eventi generali di alto livello che descrivono le normali operazioni.
  • Warning: situazioni impreviste o problemi secondari che possono richiedere attenzione.
  • Error: errori che impediscono il completamento di un'operazione.
  • Critical: problemi gravi che causano errori di sistema o di funzionalità principali.
  • None: disabilita la registrazione per la categoria o il componente di destinazione.

Le corrispondenze parziali dei nomi degli spazi dei nomi sono supportate, ma devono terminare in corrispondenza di un . separatore. Per esempio:

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

Configurazione di esempio

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

In questo esempio, i log da RuntimeConfigValidator usano Debug, altre classi sotto Azure.DataApiBuilder.Core usano Information, e tutti gli altri log predefiniti sono su Warning.

Command-line

Configurare i livelli di log tramite 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

Configurazione risultante

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

Supporto del ricaricamento rapido

È possibile aggiornare i livelli di log in modo dinamico (ricaricamento rapido) in modalità di sviluppo e produzione senza riavviare l'applicazione. Ciò consente di regolare la registrazione in tempo reale per risolvere i problemi.

Spazi dei nomi importanti per il filtro

Alcuni namespace e classi comuni che potrebbe voler filtrare, e perché:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: diagnosticare i problemi di convalida della configurazione e gli errori dello schema.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: analizzare il comportamento di generazione ed esecuzione di query SQL.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: Tracciare l'esecuzione e la tempistica per le chiamate di query al database.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: risolvere i problemi relativi alla composizione del report dello stato di salute dell'endpoint.
  • Azure.DataApiBuilder.Service.Controllers.RestController: esaminare gli errori di routing delle richieste REST e a livello di controller.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: eseguire il debug delle decisioni di autorizzazione e della valutazione del ruolo.
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: Esaminare il comportamento della pipeline di autorizzazione di ASP.NET Core.
  • default: impostare il livello di base per tutte le altre categorie non elencate in modo esplicito.