次の方法で共有


データ API ビルダーでログ レベルを構成する

データ API ビルダー (DAB) では、詳細度を制御するためにフィルター処理されたログ レベルがサポートされています。 グローバル レベルを設定し、特定の名前空間またはクラスをオーバーライドして、重点を置いた診断を行うことができます。

ログ レベルのフィルター処理フローを示す図。

ログ設定は、構成の 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>

Example

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: 明示的にリストされていない他のすべてのカテゴリの基準レベルを設定します。