.NET 幫助

Microsoft 日誌記錄 C#(開發者如何運作)

發佈 2024年1月27日
分享:

介紹

記錄是 C# 中的一項基本技術,它可以在應用程式運行時捕捉資訊、警告、錯誤和其他相關數據。 它幫助開發人員監控他們的程序行為,排除故障,並了解應用程式在不同情境中的運作方式。 C# 提供了一些日誌框架和套件,以使日誌工作更簡單。 Microsoft.Extensions.Logging是 .NET Core 應用程式中使用最廣泛的記錄框架之一。 適用於 .NET Core 的 Microsoft.Extensions.Logging NuGet 套件使我們能夠訪問多個擴展方法,以協助我們撰寫不同的日誌級別。 在本文中,我們將深入瞭解 MS 日誌記錄。

如何設置 MS 日誌記錄

  1. 建立新的Visual Studio專案。

  2. Microsoft.Extensions.Logging庫安装Microsoft.Extensions.Logging 套件頁面在 NuGet 上.

  3. Logger 介面注入到控制台。

  4. 配置日志输出。

  5. 在不同級別寫日誌。

  6. 運行程式碼。

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

要開始,請在 Visual Studio 中創建一個新專案。

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

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

步驟 3:將 Logger 介面注入到控制台中

要使用記錄功能,您需要將 Logger 介面的實例注入到您的控制台應用程式中。 這可以通過使用依賴注入框架或手動創建 Logger 類的實例來完成。

using Microsoft.Extensions.Logging;

// Inject the logger into the console
ILogger logger = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
}).CreateLogger<Program>();
using Microsoft.Extensions.Logging;

// Inject the logger into the console
ILogger logger = LoggerFactory.Create(builder =>
{
    builder.AddConsole();
}).CreateLogger<Program>();
Imports Microsoft.Extensions.Logging

' Inject the logger into the console
Private logger As ILogger = LoggerFactory.Create(Sub(builder)
	builder.AddConsole()
End Sub).CreateLogger<Program>()
VB   C#

步驟 4:配置日誌輸出

配置日誌的輸出方式。 這可以透過將一個或多個日誌提供者添加到記錄器建構器來完成。 最常見的提供者是控制台記錄器,它將日誌輸出到控制台。

builder.AddConsole(options =>
{
    options.TimestampFormat = "[HH:mm:ss] ";
});
builder.AddConsole(options =>
{
    options.TimestampFormat = "[HH:mm:ss] ";
});
builder.AddConsole(Sub(options)
	options.TimestampFormat = "[HH:mm:ss] "
End Sub)
VB   C#

步驟 5:在不同層級撰寫日誌

您現在可以使用記錄器物件在不同級別編寫日誌。 可用的記錄方法有 LogDebug(), 日志信息(), 記錄警告(), 記錄錯誤(), 和 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");
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");
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")
VB   C#

步驟 6:執行程式碼

最後,運行你的程式並觀察根據配置設定輸出的日誌。

就是這樣! 您已成功在 C# 應用程式中設定並使用 MS 日誌記錄。

安裝 MS Logging

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

  1. 啟動 Visual Studio。

  2. 導航至工具 > NuGet 套件管理員 > 套件管理員主控台

  3. 在套件管理器主控台中,執行以下指令:
    Install-Package Microsoft.Extensions.Logging
  1. Enter鍵執行命令。 這將下載並安裝 Microsoft.Extensions.Logging 套件到您的專案中。

日誌級別

在 C# 中的 Microsoft.Extensions.Logging 框架中,有多種日誌等級可用,使開發人員能夠根據重要性和嚴重性對日誌消息進行分類和排序。 這些等級經常用來區分各種消息類型,並協助調節日誌的詳細程度。

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

  • Trace:是最徹底的層級,通常用於提供極其詳細的數據,以便深入瞭解程式的內部運作。
  • Debug:在開發和除錯階段有用的調試信息,但在生產環境中通常不需要。
  • 信息:提供有關應用程式正常運作方式的詳細資訊。 通常,這些日誌用於監控程式的正常運行。
  • 警告:指出可能存在的問題或未來可能需要注意的事項。 它用於可能導致問題但不一定會導致程式崩潰的異常或意外情況。
  • 錯誤:表示需要立即修復的嚴重問題或錯誤。 通常用於記錄影響應用程式運作的問題。
  • 嚴重:最嚴重的狀態,用於記錄需要立即處理的關鍵問題,因為它們可能會導致嚴重的問題或程式崩潰。

    每個日誌級別都有特定的用途,讓開發人員能夠管理日誌框架輸出的數據量。 開發人員可以根據記錄資料的嚴重性和重要性選擇適當的訊息記錄等級。

配置 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();
    }
}
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();
    }
}
Imports Microsoft.Extensions.Logging
Imports System

Friend Class Program
	' Create a LoggerFactory instance
	Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
		' Add console logger
		builder.AddConsole()
		' You can add other logging providers here (e.g., AddDebug, AddFile, etc.)
	End Sub)

	' Create a logger
	Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()

	Shared Sub Main(ByVal args() As String)
		' 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 ex As Exception
			' Log exception details
			Logger.LogError(ex, "Exception log")
		End Try

		Console.ReadKey()
	End Sub
End Class
VB   C#

在此範例中,加入了一個主控台記錄器到記錄配置中,將日誌寫到主控台。 然而,Microsoft.Extensions.Logging 提供了各種日誌記錄提供者,包括記錄到檔案、資料庫,或與其他日誌記錄框架連接。 此外,還可以創建自定義的日誌提供程序,以根據特定需求格式化日誌。

包括額外的提供者進行日誌記錄

您可以通過在 Create 方法中鏈接相關方法來添加其他日誌源。()函式。 例如:

  • 若要新增調試器輸出日誌提供者,請使用 builder.AddDebug()`.
  • 要添加文件日志提供程序,请使用 builder.AddFile("log.txt")`.

MSLogging 在 IronPDF 上

若要在 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();
    }
}
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();
    }
}
Imports Microsoft.Extensions.Logging
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim loggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
			builder.AddConsole().AddDebug()
		End Sub)

		Dim logger As ILogger(Of Program) = loggerFactory.CreateLogger(Of 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()
	End Sub
End Class
VB   C#

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

要在 IronPDF 中啟用日誌記錄,我們將靜態屬性 Logger.Log 設置為來自 loggerFactoryLoggerImplementation 實例。 通過此配置,您可以使用 Logger.Log 方法在 IronPDF 中記錄訊息。

在使用 IronPDF 完成必要操作後,您可以關閉並釋放資源,然後通過釋放 loggerFactory 來清空日誌訊息。

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

安裝 IronPDF

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

  1. 在 Visual Studio 中打開套件管理器控制台。

  2. 輸入以下命令使用NuGet安裝IronPDF庫:
Install-Package IronPdf

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

dotnet add package IronPdf
  1. Enter鍵執行命令。 這將下載並安裝IronPDF封裝到您的專案中。

    也可以使用 NuGet 套件管理器 GUI 安裝 IronPDF 庫。 只需在「瀏覽」選項卡中搜索「IronPDF」套件,從列表中選擇所需的套件,然後安裝最新版本的 IronPDF。

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

使用 IronPDF 的 MS 日誌記錄

截至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();
    }
}
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();
    }
}
Imports Microsoft.Extensions.Logging
Imports IronPdf
Imports System

Friend Class Program
	Private Shared ReadOnly LoggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
		builder.AddConsole() ' Add other logging providers as needed
	End Sub)

	Private Shared ReadOnly Logger As ILogger = LoggerFactory.CreateLogger(Of Program)()

	Shared Sub Main(ByVal args() As String)
		Try
			' Your IronPDF code for PDF generation or manipulation
			Dim Renderer = New IronPdf.HtmlToPdf()
			Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
			PDF.SaveAs("Output.pdf")
			Logger.LogInformation("PDF created successfully.")
		Catch ex As Exception
			Logger.LogError(ex, "An error occurred while generating the PDF.")
		End Try

		Console.ReadKey()
	End Sub
End Class
VB   C#

此範例展示了一種在使用IronPDF的C#應用程式中設置Microsoft.Extensions.Logging的簡單方法。 記錄訊息會被生成以記錄成功創建 PDF 的過程,並記錄可能發生的任何異常。

確保根據您的應用程序的特定需求以及使用IronPDF進行PDF創建或修改的場景,自訂日誌級別、錯誤處理和消息。 正確區分不同類型的日誌訊息,使用日誌等級可以對有效的偵錯和監控很有幫助。

若要了解更多關於 IronPDF 的資訊,請造訪IronPDF 首頁,.

結論

總之,整合 Microsoft.Extensions.Logging 允許 C# 開發人員有效地處理日誌記錄任務。 IronPDF 提供全面的日誌記錄功能,使應用程式的事件、故障和重要數據能夠被徹底記錄、分析和報告。 這增強了應用程式的可靠性、維護性和除錯能力。

IronPDF 提供不同的軟體產品,其中包括價格為 $749 的 Lite 套件。 此套裝包括永久許可證、升級選項、一年軟體維護以及三十天退款保證。 在有浮水印的試用期內,您可以探索IronPDF的功能。 若要了解更多由 Iron Software 提供的軟體產品,請訪問Iron Software 的官方網站.

< 上一頁
Cefsharp.WPF.NET Core(開發人員如何運作)
下一個 >
Serilog .NET(開發者使用方式)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >