Udostępnij przez


Korzystanie z filtrowanych poziomów dziennika

Konstruktor interfejsu API danych (DAB) obsługuje dostosowywalne, filtrowane poziomy dzienników, aby ułatwić kontrolowanie szczegółowości i koncentracji uwagi dzienników. Dzięki temu można uzyskać szczegółową diagnostykę określonych składników, zachowując cichsze obszary, poprawiając środowisko debugowania i monitorowania.

Ustawienia rejestrowania są konfigurowane w runtime.telemetry.log-level sekcji konfiguracji. Możesz określić poziomy dzienników globalnie lub docelowe określone przestrzenie nazw lub klasy dla szczegółowej kontroli.

Priorytety na poziomie dziennika

  • Pierwszeństwo ma najbardziej specyficzna przestrzeń nazw lub nazwa klasy.

  • Klucz default ustawia poziom podstawowy dla wszystkich innych składników, które nie są jawnie wymienione.

  • W przypadku pominięcia język DAB używa poziomów domyślnych na podstawie trybu hosta:

    • development mode defaults to Debug (verbose)
    • production mode defaults to Error (mniej pełne)

Obsługiwane poziomy dziennika

  • Trace: Przechwyć najbardziej szczegółowe i szczegółowe informacje, zwykle przydatne tylko w przypadku głębokiego rozwiązywania problemów lub zrozumienia każdego kroku w procesie.
  • Debug: podaj szczegółowe informacje przeznaczone do diagnozowania problemów i zrozumienia przepływu podczas opracowywania.
  • Information: rejestruj ogólne zdarzenia wysokiego poziomu, które opisują normalne operacje i kamienie milowe.
  • Warning: wskazuje nieoczekiwane sytuacje lub drobne problemy, które nie zatrzymują przetwarzania, ale mogą wymagać uwagi.
  • Error: Błędy dziennika, które uniemożliwiają pomyślne ukończenie operacji, ale nie powodują awarii systemu.
  • Critical: Zgłaszanie poważnych problemów, które powodują awarię systemu lub głównych funkcji i wymagają natychmiastowej interwencji.
  • None: Wyłącz rejestrowanie, aby pominąć wszystkie komunikaty dla docelowej kategorii lub składnika.

Częściowe dopasowania nazw przestrzeni nazw są obsługiwane, ale muszą kończyć się separatorem . . 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"
      }
    }
  }
}

W tym przykładzie:

  • Dzienniki z RuntimeConfigValidator klasy są wyświetlane na Debug poziomie.
  • Inne klasy w ramach Azure.DataApiBuilder.Core poziomu użycia Information .
  • Wszystkie inne dzienniki są domyślne na Warning poziomie.

Hot-reload support

Poziomy dzienników można aktualizować dynamicznie (ponowne ładowanie na gorąco) zarówno w trybach programowania, jak i produkcyjnym bez ponownego uruchamiania aplikacji. Pomaga to dostosować rejestrowanie na bieżąco, aby rozwiązać problemy.

Ważne przestrzenie nazw do filtrowania

Niektóre typowe przestrzenie nazw/klasy, które warto filtrować:

  • 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