.NET 帮助

Microsoft Logging C#(对开发者的工作原理)

发布 2024年一月27日
分享:

介绍

日志是 C# 中的一项基本技术,可在应用程序运行时捕获信息、警告、错误和其他相关数据。 它可以帮助开发人员关注他们的程序如何运行、排除故障并理解应用程序在各种情况下的功能。 C# 提供了一些日志记录框架和软件包,使日志记录工作更加轻松。 Microsoft.Extensions.Logging日志框架是 .NET Core 应用程序中使用最广泛的日志框架之一。 .NET Core 的 "Microsoft.Extensions.Logging" NuGet 包让我们可以访问多个扩展方法,帮助我们编写不同级别的日志。 在本文中,我们将进一步了解 MS logging。

如何设置 MS 日志

  1. 创建一个新的Visual Studio项目。

  2. 从以下位置安装 "Microsoft.Extensions.Logging "库NuGet 上的 Microsoft.Extensions.Logging 软件包页面.

  3. Logger 接口注入控制台。

  4. 配置日志输出。

  5. 编写不同级别的日志。

  6. 运行代码。

步骤 1:创建一个新的 Visual Studio 项目

要开始工作,请在 Visual Studio 中创建一个新项目。

第 2 步:安装 Microsoft.Extensions.Logging 库

使用以下命令安装 "Microsoft.Extensions.Logging "库NuGet 上的 Microsoft.Extensions.Logging 软件包页面. 该库为 .NET Core 应用程序中的日志记录提供了必要的类和方法。

第 3 步:在控制台中注入日志记录器界面

要使用日志记录功能,您需要在控制台应用程序中注入一个 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(),日志信息(),日志警告(),日志错误()",以及 "关键日志().

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 日志

要安装 MS Logging,请按照以下步骤操作:

  1. 启动 Visual Studio。

  2. 导航至 工具 > NuGet 包管理器 > 包管理器控制台

  3. 在软件包管理器控制台中,执行以下命令:
    Install-Package Microsoft.Extensions.Logging
  1. 回车执行命令。 这将下载并安装 Microsoft.Extensions.Logging 软件包到您的项目中。

日志级别

C# 中的 "Microsoft.Extensions.Logging "框架提供了多个日志级别,使开发人员能够根据其重要性和严重性对日志消息进行分类和排序。 这些级别经常用于区分各种消息类型,并协助调节日志的冗长程度。

Microsoft.Extensions.Logging "提供的默认日志级别如下:

  • 跟踪:最详尽的级别,通常用于提供令人难以置信的详细数据,以深入了解程序的内部运作。
  • 调试:在开发和调试阶段有用,但在生产环境中通常不需要的调试信息。
  • 信息:提供有关应用程序如何正常运行的详细信息。 通常情况下,程序的正常运行是通过这些日志来监控的。
  • 警告:指出可能存在的问题或将来可能需要注意的事项。 它适用于可能导致问题但不一定导致程序崩溃的异常或意外情况。
  • 错误:表示存在严重问题或错误,需要立即纠正。 通常用于记录影响应用程序运行的问题。
  • 关键:最严重的状态,用于记录需要立即解决的关键问题,因为它们可能导致严重问题或程序崩溃。

    每个日志级别都有特定的用途,并为开发人员提供了管理日志框架输出数据量的能力。 开发人员可以根据记录数据的严重性和重要性选择适当的消息记录级别。

配置 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 "提供了各种日志提供程序,包括记录到文件、数据库或连接到其他日志框架。 此外,还可以创建自定义日志提供程序,根据特定要求格式化日志。

包括额外的日志记录提供程序

您可以通过在 "创建"、"创建"、"创建"、"创建"、"创建 "和 "创建()功能。 例如

  • 要添加调试器输出日志提供程序,请使用 builder.AddDebug().
  • 要添加文件日志提供程序,请使用 builder.AddFile("log.txt").

IronPDF 上的 MSLogging

要在 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 实例。 然后,我们从 "程序 "类的工厂中创建一个日志记录器。

为了在 IronPDF 中启用日志记录功能,我们将静态 Logger.Log 属性设置为 LoggerImplementation 实例,该实例从 loggerFactory 获取日志记录器。 通过此配置,您可以使用 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. 回车执行命令。 这将下载 IronPDF 软件包并安装到您的项目中。

    也可以使用 NuGet 软件包管理器图形用户界面安装 IronPdf 库。 只需在 "浏览 "选项卡中搜索软件包 "IronPDF",从列表中选择所需的软件包,然后安装最新版本的 IronPDF 即可。

    安装完成后,您就可以开始在项目中使用 IronPDF 库了。

使用 IronPdf 进行 MS 日志记录

截至 2022 年 1 月,IronPdf 无法与 Microsoft.Extensions.Logging 直接交互,也不支持本机功能。 IronPdf 主要用作在 C# 程序中创建和修改 PDF 的工具。

不过,您仍然可以使用 Microsoft.Extensions.Logging 来记录日志。 通过将日志记录与 IronPDF 一起集成到 C# 程序中,您可以管理和记录与 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 捆绑软件。 该捆绑包包括永久许可证、升级选项、一年软件维护和 30 天退款保证。 在带水印的试用期内,您可以探索 IronPDF 的功能。 要了解有关 Iron Software 提供的软件产品的更多信息,请访问Iron Software 的官方网站.

< 前一页
Cefsharp.WPF.NET Core(它如何为开发人员工作)
下一步 >
Serilog .NET(如何为开发人员工作)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >