使用筛选的日志级别

数据 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.RuntimeConfigValidator
  • Azure.DataApiBuilder.Core
  • default

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.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