IRONSOFTWAREHOME
開發者更新

Microsoft Logging C#(開發者的工作原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年7月5日

記錄是C#中的一項基本技術,它在應用程式運行時捕獲資訊、警告、錯誤以及其他相關的資料。 它可以幫助開發者觀察程式的行為、排查問題,以及瞭解應用程式在不同情境下的運作方式。 C#提供了一些記錄框架和套件,使記錄任務更為簡單。 Microsoft.Extensions.Logging 是 .NET Core 應用程式中最常用的記錄框架之一。 適用於 .NET Core 的 NuGet 套件 Microsoft.Extensions.Logging 為我們提供了多個延伸方法,以幫助我們撰寫不同的記錄層級。 在本文中,我們將更深入瞭解 MS 記錄。

如何設置 MS 記錄

  1. 建立一個新的 Visual Studio 專案。
  2. 從 NuGet 上的 Microsoft.Extensions.Logging 套件頁面 安裝 Microsoft.Extensions.Logging 程式庫。
  3. 向控制台注入 Logger 介面。
  4. 配置記錄輸出。
  5. 在不同層級撰寫記錄。
  6. 執行程式碼。

步驟1:建立一個新的 Visual Studio 專案

首先,在 Visual Studio 中建立一個新的專案。

步驟2:安裝 Microsoft.Extensions.Logging 程式庫

using NuGet 上的 Microsoft.Extensions.Logging 套件頁面 安裝 Microsoft.Extensions.Logging 程式庫。 此程式庫為 .NET Core 應用程式中的記錄提供所需的類別和方法。

步驟3:向控制台注入 Logger 介面

若要使用記錄功能,您需要將 ILogger 介面的實例注入您的控制台應用程式中。 可以通過使用一個記錄工廠來完成這一點。

using Microsoft.Extensions.Logging;

// Create a logger for the application
ILogger<Program> logger = LoggerFactory.Create(builder =>
{
    builder.AddConsole(); // Adding console logging
}).CreateLogger<Program>();

步驟4:配置記錄輸出

配置記錄應該如何輸出。 可以通過向記錄器構建器新增一個或多個記錄提供者來完成這一點。 最常用的提供者是控制台記錄器,它將記錄輸出到控制台。

builder.AddConsole(options =>
{
    options.TimestampFormat = "[HH:mm:ss] "; // Setting the timestamp format for logs
});

步驟5:在不同層級撰寫記錄

現在可以使用記錄器物件在不同層級撰寫記錄。 可用的記錄方法有 LogError() 和 LogCritical()。

logger.LogDebug("This is a debug message");
logger.LogInformation("This is an information message");
logger.LogWarning("This is a warning message");
logger.LogError("This is an error message");
logger.LogCritical("This is a critical message");

步驟6:運行程式碼

最後,運行您的程式碼,並根據配置的設定觀察記錄的輸出。

就這樣! 您已經成功在您的 C# 應用程式中設置並使用 MS 記錄。

安裝 MS 記錄

若要安裝 MS 記錄,請遵循以下步驟:

  1. 啟動 Visual Studio。

  2. 導航至 工具 > NuGet 套件管理器 > 套件管理器控制台。

  3. 在套件管理器控制台執行以下命令:

    Install-Package Microsoft.Extensions.Logging
    PowerShell
  4. 按 Enter 以執行命令。 這將下載並安裝套件 Microsoft.Extensions.Logging 到您的專案中。

記錄層級

C# 中的 Microsoft.Extensions.Logging 框架提供了多個記錄層級,使開發者能夠根據重要性和嚴重性對記錄資訊進行分類和排序。 這些層級經常用來區分不同型別的資訊,並協助管理記錄的詳細程度。

由 Microsoft.Extensions.Logging 提供的預設記錄層級如下:

  • Trace: 最詳盡的層級,通常用於提供深層理解程式內部運作的非常詳細的資料。
  • Debug: 除錯資訊對開發和除錯階段有用,但通常在生產環境中不需要。
  • Information: 提供應用程式正常運行時的細節資訊。 通常,程式的正常操作通過這些記錄進行監控。
  • Warning: 指出可能的問題或將來可能需要注意的事項。 用於表示異常或意外情況,可能會導致問題,但不一定會導致程式崩潰。
  • Error: 標示需要立即修復的嚴重問題或錯誤。 通常用於記錄影響應用程式運行的問題。
  • Critical: 最嚴重的狀態,用於記錄需要立即處理以免造成嚴重問題或程式崩潰的關鍵問題。

每個記錄層級都有其特定的用途,可讓開發者管理記錄框架輸出的資料量。 開發者可以根據記錄資料的嚴重性和重要性選擇合適的層級進行資訊記錄。

配置 C# 記錄

以下是一個使用 Microsoft.Extensions.Logging 配置記錄的基本範例:

using Microsoft.Extensions.Logging;
using System;

class Program
{
    // Create a LoggerFactory instance
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        // Add console logger
        builder.AddConsole();
        // You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
    });

    // Create a logger
    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string[] args)
    {
        // Example log messages
        Logger.LogInformation("Information log");
        Logger.LogWarning("Warning log");
        Logger.LogError("Error log");

        try
        {
            // Simulate an exception
            throw new Exception("Exception occurred");
        }
        catch (Exception ex)
        {
            // Log exception details
            Logger.LogError(ex, "Exception log");
        }

        Console.ReadKey(); // Wait for a key press before closing the application
    }
}

在此範例中,將控制檯記錄器新增到記錄配置中,將記錄寫入控制檯。 然而,Microsoft.Extensions.Logging 提供了多種記錄提供者,包括文件、資料庫記錄或者與其他記錄框架連接。 此外,可以建立自訂記錄提供者,可以根據特定需求格式化記錄。

包含額外的記錄提供者

您可以通過在 Create() 函式內連結相關的方法來新增額外的記錄來源。 例如:

  • 要新增除錯器輸出記錄提供者,請使用 builder.AddDebug()。
  • 要新增文件記錄提供者,請使用 builder.AddFile("log.txt")。

在 IronPDF 上設置 MSLogging

IronPDF 擅長於 HTML 到 PDF 的轉換,確保精確保留原始布局和樣式。 它非常適合從基於網路的內容(如報告、發票和文件)建立PDF文件。 用於HTML文件、URL和原始HTML字串的支持,IronPDF可以輕鬆生成高品質的PDF文件。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

若要在 IronPDF 中啟用記錄,您可以使用 Microsoft.Extensions.Logging 框架以及 IronPDF 的內建記錄功能。 以下是 IronPDF 中設置記錄的範例:

using Microsoft.Extensions.Logging;
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddConsole()
                .AddDebug();
        });

        ILogger<Program> logger = loggerFactory.CreateLogger<Program>();

        // Enable logging in IronPDF
        Logger.Log = new LoggerImplementation(logger);

        // Use IronPDF and perform operations
        // ...

        // Example of logging an error in IronPDF
        Logger.Log.Error("An error occurred while processing the PDF");

        // Example of logging a warning in IronPDF
        Logger.Log.Warning("This is a warning message");

        // Example of logging an information message in IronPDF
        Logger.Log.Information("This is an information message");

        // ...

        // Close and dispose resources
        // ...

        // Flush the log messages
        loggerFactory.Dispose();
    }
}

在此範例中,我們從 Microsoft.Extensions.Logging 框架中建立了一個 LoggerFactory 的實例。 接著,我們為 Program 類別的工廠建立了一個記錄器。

為了在 IronPDF 中啟用記錄,我們將靜態 Logger.Log 屬性設定為一個 LoggerImplementation 的實例,該實例從 loggerFactory 中獲取記錄器。 透過這種配置,您可以使用 Logger.Log 方法在 IronPDF 中記錄訊息。

在確保 IronPDF 所需的操作完成後,您可以關閉並釋放資源,然後通過釋放 loggerFactory 來刷新記錄訊息。

注意:請確保您已經為 Microsoft.Extensions.Logging 和 IronPDF 安裝了必要的依賴項和套件。

安裝IronPDF

若要安裝 IronPDF 程式庫,請遵循以下步驟:

  1. 在 Visual Studio 中開啟套件管理器控制台。
  2. 輸入以下命令以使用 NuGet 安裝 IronPDF 程式庫:

PM > Install-Package IronPdf

或者,您可以透過在終端中運行以下命令來使用 .NET CLI:

PM > Install-Package IronPdf

  1. 按 Enter 以執行命令。 這將下載並安裝 IronPDF 套件到您的專案中。

也可以使用 NuGet 套件管理器 GUI 安裝 IronPDF 程式庫。 只需在瀏覽選項卡中搜尋套件" IronPDF",從列表中選擇所需的套件,並安裝最新版的 IronPDF。

安裝完成後,您就可以在您的專案中開始使用 IronPDF 程式庫。

使用 IronPDF 設置 MS Logging

截至 2022 年 1 月,IronPDF 不能直接與 Microsoft.Extensions.Logging 交互,且不原生支持。 IronPDF 主要用作在 C# 程式中建立和修改 PDF 的工具。

然而,您仍然可以使用 Microsoft.Extensions 來整合記錄。 透過將記錄整合到您的 C# 程式中,與 IronPDF 一起使用,您可以管理和記錄 PDF 生成相關事件、應用程式工作流程,或者在使用 IronPDF 時發生的問題。

以下是如何使用 Microsoft.Extensions 將記錄與 IronPDF 整合的範例:

using Microsoft.Extensions.Logging;
using IronPdf;
using System;

class Program
{
    private static readonly ILoggerFactory LoggerFactory = LoggerFactory.Create(builder =>
    {
        builder.AddConsole(); // Add other logging providers as needed
    });

    private static readonly ILogger Logger = LoggerFactory.CreateLogger<Program>();

    static void Main(string[] args)
    {
        try
        {
            // Your IronPDF code for PDF generation or manipulation
            var Renderer = new IronPdf.HtmlToPdf();
            var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");
            PDF.SaveAs("Output.pdf");
            Logger.LogInformation("PDF created successfully.");
        }
        catch (Exception ex)
        {
            Logger.LogError(ex, "An error occurred while generating the PDF.");
        }

        Console.ReadKey(); // Wait for a key press before closing the application
    }
}

此範例展示了在使用 IronPDF 的 C# 應用程式中設置 Microsoft.Extensions.Logging 的簡單方法。 生成記錄資訊以記錄 PDF 建立成功以及可能發生的任何異常。

請確保根據應用程式特定需求以及 IronPDF 用於 PDF 建立或修改的場景,自訂記錄層級、錯誤處理和訊息。 適當區分各種型別的記錄訊息使用記錄層級可有效進行除錯和監控。

若要進一步了解 IronPDF,請存取 IronPDF 首頁,。

結論

總結來說,整合 Microsoft.Extensions.Logging 讓 C# 開發者能夠有效處理記錄任務。 IronPDF 提供全面的記錄功能,能夠徹底記錄、分析和報告應用程式事件、失敗和重要資料。 這增強了應用程式的可靠性、維護性和除錯能力。

IronPDF 提供不同的軟體產品,包括價格為 $999 的 Lite 套裝。 此套裝包含永久授權、升級選項、一年的軟體維護與三十天退款保證。 在浮水印試用期內,您可以探索 IronPDF 的功能。 若要了解 Iron Software 提供的軟體產品,請存取 Iron Software 的官方網站。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起