数据 API 生成器(DAB)支持可自定义的筛选日志级别,以帮助控制日志的详细程度和焦点。 这样,你可以获取特定组件的详细诊断,同时保持其他区域更安静,从而改善调试和监视体验。
日志记录设置是在配置部分配置的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