다음을 통해 공유


데이터 API 작성기에서 로그 수준 구성

DAB(데이터 API 작성기)는 자세한 정보를 제어하기 위해 필터링된 로그 수준을 지원합니다. 전역 수준을 설정하고 포커스가 있는 진단에 대한 특정 네임스페이스 또는 클래스를 재정의할 수 있습니다.

로그 수준 필터링 흐름을 보여 주는 다이어그램

로깅 설정은 구성 섹션에서 구성 runtime.telemetry.log-level 됩니다. 전역적으로 로그 수준을 지정하거나 세분화된 제어를 위해 특정 네임스페이스 또는 클래스를 대상으로 지정할 수 있습니다.

필수 조건

  • 기존 DAB 구성 파일입니다.

도구 실행

구성 파일에서 로그 수준을 설정하는 데 사용합니다 dab configure .

로그 수준 구성

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

DAB를 시작합니다.

dab start

테스트 로깅

  1. API에 요청을 보냅니다.

  2. 로그가 구성된 수준과 일치하는지 확인합니다.

구성 / 설정

log-level 구성 파일의 아래에 runtime.telemetry 섹션을 추가합니다.

로그 수준 우선 순위

가장 구체적인 네임스페이스 또는 클래스 이름이 우선합니다. 키는 default 명시적으로 나열되지 않은 다른 모든 구성 요소의 기본 수준을 설정합니다.

생략하면 DAB는 호스트 모드에 따라 기본 수준을 사용합니다.

  • development 모드의 기본값은 Debug입니다.
  • production 모드의 기본값은 Error입니다.

지원되는 로그 수준

  • Trace: 가장 자세한 정보, 일반적으로 심층적인 문제 해결을 위한 정보입니다.
  • Debug: 개발 중에 문제를 진단하기 위한 자세한 정보입니다.
  • Information: 일반 작업을 설명하는 일반 상위 수준 이벤트입니다.
  • Warning: 예기치 않은 상황 또는 주의가 필요할 수 있는 사소한 문제입니다.
  • Error: 작업이 성공적으로 완료되지 못하게 하는 오류입니다.
  • Critical: 시스템 또는 주요 기능 오류를 일으키는 심각한 문제입니다.
  • None: 대상 범주 또는 구성 요소에 대한 로깅을 사용하지 않도록 설정합니다.

네임스페이스 이름의 부분 일치는 지원되지만 구분 기호로 . 끝나야 합니다. 다음은 그 예입니다.

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

구성 예

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

이 예제에서는 RuntimeConfigValidator에서의 로그가 Debug을 사용하고, Azure.DataApiBuilder.Core 아래의 다른 클래스는 Information을 사용하며, 다른 모든 로그는 기본적으로 Warning로 설정됩니다.

Command-line

dab configure를 통해 로그 수준 구성

  • --runtime.telemetry.log-level.default
  • --runtime.telemetry.log-level.<namespace-or-class>

예시

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

결과 구성

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

핫 리로딩 지원

애플리케이션을 다시 시작하지 않고 개발 모드와 프로덕션 모드 모두에서 로그 수준을 동적으로 업데이트(핫 다시 로드)할 수 있습니다. 이렇게 하면 즉시 로깅을 조정하여 문제를 해결하는 데 도움이 됩니다.

필터링을 위한 중요한 네임스페이스

필터링할 수 있는 몇 가지 일반적인 네임스페이스 및 클래스와 그 이유는 다음과 같습니다.

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: 구성 유효성 검사 문제 및 스키마 오류를 진단합니다.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: SQL 쿼리 생성 및 실행 동작을 조사합니다.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: 쿼리 호출에 대한 데이터베이스 실행 및 타이밍을 추적합니다.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: 상태 엔드포인트 보고서 구성 문제를 해결합니다.
  • Azure.DataApiBuilder.Service.Controllers.RestController: REST 요청 라우팅 및 컨트롤러 수준 오류를 검사합니다.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: 권한 부여 결정 및 역할 평가를 디버그합니다.
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: ASP.NET Core 권한 부여 파이프라인 동작을 조사합니다.
  • default: 명시적으로 나열되지 않은 다른 모든 범주의 기준 수준을 설정합니다.