Mengonfigurasi tingkat log di penyusun API Data

Penyusun API Data (DAB) mendukung tingkat log yang difilter untuk mengontrol verbositas. Anda dapat mengatur tingkat global dan mengambil alih namespace atau kelas tertentu untuk diagnostik yang berfokus.

Diagram memperlihatkan alur pemfilteran tingkat log.

Pengaturan pengelogan dikonfigurasi di bagianruntime.telemetry.log-level konfigurasi Anda. Anda dapat menentukan tingkat log secara global atau menargetkan namespace atau kelas tertentu untuk kontrol terperinci.

Prasyarat

  • File konfigurasi DAB yang ada.

Jalankan alat

Gunakan dab configure untuk mengatur tingkat log dalam file konfigurasi.

Mengonfigurasikan tingkat log

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

Mulai DAB.

dab start

Pengelogan pengujian

  1. Kirim permintaan ke API Anda.

  2. Konfirmasikan log cocok dengan tingkat yang dikonfigurasi.

Konfigurasi

log-level Tambahkan bagian di bawah runtime.telemetry dalam file konfigurasi Anda.

Prioritas tingkat log

Namespace layanan atau nama kelas yang paling spesifik diutamakan. Kunci default mengatur tingkat dasar untuk semua komponen lain yang tidak terdaftar secara eksplisit.

Jika dihilangkan, DAB menggunakan tingkat default berdasarkan mode host:

  • development secara default ke Debug.
  • production secara default ke Error.

Tingkat log yang didukung

  • Trace: Informasi paling rinci, biasanya untuk pemecahan masalah mendalam.
  • Debug: Informasi terperinci untuk mendiagnosis masalah selama pengembangan.
  • Information: Peristiwa umum tingkat tinggi yang menjelaskan operasi normal.
  • Warning: Situasi tak terduga atau masalah kecil yang mungkin memerlukan perhatian.
  • Error: Kegagalan yang mencegah operasi berhasil diselesaikan.
  • Critical: Masalah parah yang menyebabkan kegagalan sistem atau fitur utama.
  • None: Nonaktifkan pengelogan untuk kategori atau komponen yang ditargetkan.

Kecocokan parsial nama namespace didukung tetapi harus berakhir di pemisah . . Contohnya:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator
  • Azure.DataApiBuilder.Core
  • default

Konfigurasi contoh

{
  "runtime": {
    "telemetry": {
      "log-level": {
        "Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "Debug",
        "Azure.DataApiBuilder.Core": "Information",
        "default": "Warning"
      }
    }
  }
}

Dalam contoh ini, log dari RuntimeConfigValidator menggunakan Debug, kelas lain di bawah Azure.DataApiBuilder.Core menggunakan Information, dan semua log lainnya berdasarkan default ke Warning.

Command-line

Konfigurasikan tingkat log melalui 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

Konfigurasi yang dihasilkan

{
  "runtime": {
    "telemetry": {
      "log-level": {
        "Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "Debug",
        "Azure.DataApiBuilder.Core": "Information",
        "default": "Warning"
      }
    }
  }
}

Dukungan hot-reload

Anda dapat memperbarui tingkat log secara dinamis (hot-reload) dalam mode pengembangan dan produksi tanpa memulai ulang aplikasi. Ini membantu menyesuaikan pengelogan secara on-the-fly untuk memecahkan masalah.

Namespace penting untuk pemfilteran

Beberapa namespace dan kelas umum yang mungkin ingin Anda filter dan mengapa:

  • Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator: Mendiagnosis masalah validasi konfigurasi dan kesalahan skema.
  • Azure.DataApiBuilder.Core.Resolvers.SqlQueryEngine: Selidiki pembuatan kueri SQL dan perilaku eksekusi.
  • Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor: Lacak eksekusi dan waktu database untuk panggilan kueri.
  • Azure.DataApiBuilder.Service.HealthCheck.ComprehensiveHealthReportResponseWriter: Memecahkan masalah komposisi laporan titik akhir kesehatan.
  • Azure.DataApiBuilder.Service.Controllers.RestController: Periksa kesalahan pengarahan permintaan REST dan kesalahan pada tingkat pengontrol.
  • Azure.DataApiBuilder.Auth.IAuthorizationResolver: Men-debug keputusan otorisasi dan evaluasi peran.
  • Microsoft.AspNetCore.Authorization.IAuthorizationHandler: Selidiki perilaku alur otorisasi inti ASP.NET.
  • default: Atur tingkat dasar untuk semua kategori lain yang tidak terdaftar secara eksplisit.