.NET 帮助

Microsoft 日志记录 C#(开发人员操作详解)

发布 2024年一月27日
分享:

简介

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

如何设置 MS 日志

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

2.从以下位置安装 "Microsoft.Extensions.Logging "库 NuGet.

3.将 Logger 接口注入控制台。

4.配置日志输出。

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

6.运行代码。

第 1 步:创建新的 Visual Studio 项目

首先,在 Visual Studio 中创建一个新项目。

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

使用以下命令安装 "Microsoft.Extensions.Logging "库 NuGet.该库为 .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 日志,请按照以下步骤操作:

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

包括额外的日志提供程序

您可以通过在 `Create()功能。例如

  • 要添加调试器输出日志提供程序,请使用 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 实例。然后,我们从该工厂为 Program 类创建一个日志记录器。

为了在 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

3.按回车执行命令。这将下载并安装 IronPDF 软件包到你的项目中。

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

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

使用 IronPDF 进行 MS 日志记录

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

不过,您仍然可以使用 Microsoft.Extensions 将日志记录整合到程序中。通过将日志记录与 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 的更多信息,请访问官方网站。

结论

总之,集成 Microsoft.Extensions.Logging 可以让 C# 开发人员有效地处理日志任务。IronPDF 提供了全面的日志功能,可对应用程序事件、故障和重要数据进行全面记录、分析和报告。这就增强了应用程序的可靠性、维护性和调试性。

IronPDF 提供不同的软件产品,包括售价为 $749 的简装版。该捆绑包包括永久许可证、升级选项、一年的软件维护和三十天的退款保证。在带水印的试用期内,您可以探索 IronPDF 的各项功能。要了解有关 Iron Software 提供的软件产品的更多信息,请访问其官方网站 https://ironsoftware.com/.

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

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

免费NuGet下载 总下载量: 10,731,156 查看许可证 >