Condividi tramite


Usare i livelli di log filtrati

Il generatore di API dati (DAB) supporta livelli di log personalizzabili e filtrati per controllare la dettaglio e l'attenzione dei log. In questo modo è possibile ottenere diagnostica dettagliata su componenti specifici mantenendo altre aree più silenziose, migliorando l'esperienza di debug e monitoraggio.

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.

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 mode defaults to (verbose) (mode defaults to Debug (verbose)
    • production mode defaults to Error (less verbose)

Livelli di log supportati

  • Trace: acquisire le informazioni più dettagliate e con granularità fine, in genere utili solo per la risoluzione dei problemi approfondita o la comprensione di ogni passaggio di un processo.
  • Debug: fornire informazioni dettagliate destinate alla diagnosi dei problemi e alla comprensione del flusso durante lo sviluppo.
  • Information: registra eventi generali di alto livello che descrivono le normali operazioni e le attività cardine.
  • Warning: indica situazioni impreviste o problemi secondari che non interrompono l'elaborazione, ma potrebbero richiedere attenzione.
  • Error: errori di log che impediscono il completamento di un'operazione ma non arrestano il sistema.
  • Critical: segnala problemi gravi che causano errori di sistema o di funzionalità gravi e richiedono un intervento immediato.
  • None: disabilita la registrazione per eliminare tutti i messaggi 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. 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"
      }
    }
  }
}

In questo esempio:

  • I log della RuntimeConfigValidator classe vengono visualizzati a Debug livello.
  • Altre classi sotto Azure.DataApiBuilder.Core il livello di utilizzo Information .
  • Tutti gli altri log vengono predefinito a Warning livello.

Hot-reload support

È 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 spazi dei nomi/classi comuni che è possibile filtrare:

  • 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