DAB(데이터 API 작성기)는 로그의 세부 정보 표시 및 포커스를 제어하는 데 도움이 되도록 필터링된 사용자 지정 가능한 로그 수준을 지원합니다. 이렇게 하면 다른 영역을 더 조용히 유지하면서 특정 구성 요소에 대한 자세한 진단을 가져와 디버깅 및 모니터링 환경을 개선할 수 있습니다.
로깅 설정은 구성 섹션에서 구성 runtime.telemetry.log-level 됩니다. 전역적으로 로그 수준을 지정하거나 세분화된 제어를 위해 특정 네임스페이스 또는 클래스를 대상으로 지정할 수 있습니다.
로그 수준 우선 순위
가장 구체적인 네임스페이스 또는 클래스 이름이 우선합니다.
키는
default명시적으로 나열되지 않은 다른 모든 구성 요소의 기본 수준을 설정합니다.생략하면 DAB는 호스트 모드에 따라 기본 수준을 사용합니다.
-
development모드 기본값:Debug(자세한 정보 표시) -
production모드 기본값:Error(자세한 정보 줄임)
-
지원되는 로그 수준
-
Trace: 가장 상세하고 세분화된 정보를 캡처합니다. 일반적으로 프로세스의 모든 단계를 심층적으로 해결하거나 이해하는 데만 유용합니다. -
Debug: 개발 중에 문제를 진단하고 흐름을 이해하기 위한 자세한 정보를 제공합니다. -
Information: 정상 작업 및 중요 시점을 설명하는 일반, 상위 수준 이벤트를 기록합니다. -
Warning: 처리를 중지하지 않지만 주의가 필요할 수 있는 예기치 않은 상황 또는 사소한 문제를 나타냅니다. -
Error: 작업이 성공적으로 완료되지 않지만 시스템이 충돌하지 않는 로그 오류입니다. -
Critical: 시스템 또는 주요 기능 오류를 발생시키고 즉각적인 개입이 필요한 심각한 문제를 보고합니다. -
None: 로깅을 사용하지 않도록 설정하여 대상 범주 또는 구성 요소에 대한 모든 메시지를 표시하지 않습니다.
네임스페이스 이름의 부분 일치는 지원되지만 구분 기호로 . 끝나야 합니다. For example:
Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidatorAzure.DataApiBuilder.Coredefault
Example configuration
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "Debug",
"Azure.DataApiBuilder.Core": "Information",
"default": "Warning"
}
}
}
}
이 예제에서:
- 클래스의
RuntimeConfigValidator로그는 수준에 표시됩니다Debug. - 사용
Information수준의 다른 클래스Azure.DataApiBuilder.Core입니다. - 다른 모든 로그는 기본적으로 수준입니다
Warning.
Hot-reload support
애플리케이션을 다시 시작하지 않고 개발 모드와 프로덕션 모드 모두에서 로그 수준을 동적으로 업데이트(핫 다시 로드)할 수 있습니다. 이렇게 하면 즉시 로깅을 조정하여 문제를 해결하는 데 도움이 됩니다.
필터링을 위한 중요한 네임스페이스
필터링할 수 있는 몇 가지 일반적인 네임스페이스/클래스:
Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidatorAzure.DataApiBuilder.Core.Resolvers.SqlQueryEngineAzure.DataApiBuilder.Core.Resolvers.IQueryExecutorAzure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriterAzure.DataApiBuilder.Service.Controllers.RestControllerAzure.DataApiBuilder.Auth.IAuthorizationResolverMicrosoft.AspNetCore.Authorization.IAuthorizationHandlerdefault