Konfigurace úrovní protokolů v Tvůrci rozhraní Data API

Tvůrce rozhraní DATA API (DAB) podporuje filtrované úrovně protokolů pro řízení podrobností. Pro zaměřenou diagnostiku můžete nastavit globální úroveň a přepsat konkrétní obory názvů nebo třídy.

Diagram znázorňující tok filtrování na úrovni protokolu

Nastavení protokolování se konfiguruje v runtime.telemetry.log-level části konfigurace. Můžete zadat úrovně protokolů globálně nebo cílit na konkrétní obory názvů nebo třídy pro jemně odstupňované řízení.

Požadavky

  • Existující konfigurační soubor DAB.

Spustit nástroj

Použijte dab configure k nastavení úrovní protokolování v konfiguračním souboru.

Konfigurace úrovní protokolu

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

Spusťte DAB.

dab start

Protokolování testů

  1. Odešlete požadavek do rozhraní API.

  2. Ověřte, že protokoly odpovídají nakonfigurovaným úrovním.

Konfigurace

Do svého konfiguračního souboru přidejte sekci log-level pod runtime.telemetry.

Priority na úrovni protokolu

Přednost má nejvýraznější obor názvů nebo název třídy. Klíč default nastaví základní úroveň pro všechny ostatní komponenty, které nejsou explicitně uvedeny.

Pokud tento parametr vynecháte, jazyk DAB používá výchozí úrovně na základě režimu hostitele:

  • development ve výchozím nastavení se nastaví na Debughodnotu .
  • production ve výchozím nastavení se nastaví na Errorhodnotu .

Podporované úrovně protokolů

  • Trace: Nejpodrobnější informace, obvykle pro podrobné řešení potíží.
  • Debug: Podrobné informace o diagnostice problémů během vývoje.
  • Information: Obecné události vysoké úrovně, které popisují normální operace.
  • Warning: Neočekávané situace nebo menší problémy, které mohou vyžadovat pozornost.
  • Error: Selhání, která brání úspěšnému dokončení operace.
  • Critical: Závažné problémy, které způsobují selhání systému nebo hlavní funkce.
  • None: Zakažte protokolování pro cílovou kategorii nebo součást.

Podporují se částečné shody názvů oborů názvů, ale musí končit oddělovačem . . Například:

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

Příklad konfigurace

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

V tomto příkladu protokoly z RuntimeConfigValidator používají Debug, ostatní třídy pod Azure.DataApiBuilder.Core používají Information, a všechny ostatní protokoly jsou výchozímu Warning.

Command-line

Nakonfigurujte úrovně protokolů prostřednictvím 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

Výsledná konfigurace

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

Podpora běžícího opětovného načítání

Úrovně protokolů můžete dynamicky aktualizovat (opětovné načítání za provozu) jak ve vývojovém, tak v produkčním režimu bez restartování aplikace. To pomáhá upravit protokolování za běhu, aby se problémy vyřešily.

Důležité obory názvů pro filtrování

Některé běžné obory názvů a třídy, které můžete chtít filtrovat a proč:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: Diagnostikujte problémy s ověřováním konfigurace a chyby schématu.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: Prozkoumejte chování generování a spouštění dotazů SQL.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: Trasování spouštění databáze a načasování volání dotazů.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: Odstraňování problémů se sestavením hlášení zdravotního kontrolního bodu.
  • Azure.DataApiBuilder.Service.Controllers.RestController: Zkontrolujte chyby směrování požadavků REST a chyby na úrovni kontroleru.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: Optimalizace rozhodnutí o autorizaci a vyhodnocení rolí
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: Prozkoumejte chování kanálu autorizace ASP.NET Core.
  • default: Nastavte základní úroveň pro všechny ostatní kategorie, které nejsou explicitně uvedeny.