解釋 ASP.NET Core 中的日誌記錄工作原理


日誌記錄是在軟體中即時記錄事件的過程,以及其他資訊,例如基礎設施詳細資訊、執行時間等。日誌記錄是任何軟體應用程式的重要組成部分。擁有日誌至關重要,尤其是在出現問題時。日誌可以幫助您瞭解故障或效能瓶頸並解決問題。

日誌通常寫入資料庫、控制檯或檔案,具體取決於應用程式的嚴重性和方便性。儘管可以在日誌中記錄任何資料,但通常會寫入資訊訊息和錯誤訊息。資訊訊息捕獲發生的標準事件,例如方法呼叫、使用者身份驗證、產品結賬等。錯誤訊息捕獲錯誤並提供可能幫助您除錯程式的所有資料。

ASP.NET Core 提供了一個通用的日誌記錄介面,以便於從應用程式中記錄內容。整個框架和第三方庫都使用相同的介面,從而更容易搜尋日誌並診斷問題。該框架還允許您配置日誌的詳細程度並將日誌傳送到一個或多個目標,如檔案、控制檯或資料庫。

在 ASP.NET Core 中,日誌提供程式儲存日誌。您可以為應用程式配置多個日誌提供程式。預設的 ASP.NET Core 配置以下日誌提供程式:**控制檯**、**除錯**、**EventSource** 和 **EventLog**(在 Windows 上)。

您可以透過呼叫 **ClearProviders** 並新增所需的特定日誌提供程式來覆蓋預設的日誌提供程式集。以下程式碼添加了控制檯日誌提供程式。

public static IHostBuilder CreateHostBuilder(string[] args) =>
   Host.CreateDefaultBuilder(args)
      .ConfigureLogging(logging =>{
         logging.ClearProviders();
         logging.AddConsole();
      })
      .ConfigureWebHostDefaults(webBuilder =>{
         webBuilder.UseStartup<Startup>();
      });

您可以使用 **ILogger** 介面建立日誌,該介面由 ASP.NET Core 依賴項注入容器注入到您的程式碼中。以下示例說明了這一點。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;

namespace Razor.Pages{
   public class IndexModel : PageModel{
      private readonly ILogger<IndexModel> _logger;
      public IndexModel(ILogger<IndexModel> logger){
         _logger = logger;
      }

      public void OnGet(){
         _logger.LogInformation("Index page visited.");
      }
   }
}

日誌記錄對於快速診斷、排查和修復生產應用程式中的錯誤至關重要。最佳實踐是在開發應用程式的早期配置日誌記錄,理想情況下是在開始開發時。

更新於: 2021年6月22日

6K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.