Поделиться через


Использование отфильтрованных уровней журналов

Построитель 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 уровне.
  • Другие классы под Azure.DataApiBuilder.Core уровнем использования Information .
  • Все остальные журналы по умолчанию на 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