
Microsoft Logging C#(开发者如何使用)
日志记录是C#中捕获信息、警告、错误和其他相关数据的基本技术,同时应用程序正在运行。 它帮助开发人员监控程序的行为,排除故障,并了解应用程序在不同环境中的功能。 C#提供了一些日志框架和包,以简化日志任务。 Microsoft.Extensions.Logging 是 .NET Core 应用程序中最广泛使用的日志框架之一。 该Microsoft.Extensions.Logging NuGet包用于.NET Core,可让我们访问多个扩展方法,以帮助我们记录不同的日志级别。 在本文中,我们将更多地了解 MS 日志记录。
如何设置 MS 日志记录
- 创建一个新的 Visual Studio 项目。
- 从NuGet上的Microsoft.Extensions.Logging包页面安装
Microsoft.Extensions.Logging库。 - 将
Logger接口注入到控制台中。 - 配置日志输出。
- 在不同级别写入日志。
- 运行代码。
步骤 1:创建一个新的 Visual Studio 项目
要开始,请在 Visual Studio 中创建一个新项目。
步骤 2:安装 Microsoft.Extensions.Logging 库
使用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>();Imports Microsoft.Extensions.Logging
' Create a logger for the application
Private logger As ILogger(Of Program) = LoggerFactory.Create(Sub(builder)
builder.AddConsole() ' Adding console logging
End Sub).CreateLogger<Program>()步骤 4:配置日志输出
配置日志的输出方式。 这可以通过向日志记录器生成器添加一个或多个日志提供程序来实现。 最常见的提供者是控制台日志记录器,它将日志输出到控制台。
builder.AddConsole(options =>
{
options.TimestampFormat = "[HH:mm:ss] "; // Setting the timestamp format for logs
});builder.AddConsole(Sub(options)
options.TimestampFormat = "[HH:mm:ss] " ' Setting the timestamp format for logs
End Sub)步骤 5:在不同级别写入日志
现在可以使用日志记录器对象在不同级别写入日志。 可用的日志记录方法有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")步骤 6:运行代码
最后,运行您的代码,并根据配置的设置观察日志输出。
就是这样! 您已成功在 C# 应用程序中设置并使用 MS 日志记录。
安装 MS 日志记录
要安装 MS 日志记录,请按照以下步骤操作:
-
启动 Visual Studio。
-
导航到 工具 > NuGet 包管理器 > 包管理器控制台。
-
在包管理器控制台中执行以下命令:
Install-Package Microsoft.Extensions.LoggingPowerShell -
按 Enter 键执行命令。 这将下载并安装
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(); // Wait for a key press before closing the application
}
}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() ' Wait for a key press before closing the application
End Sub
End Class在此示例中,将控制台日志记录器添加到日志配置中,以将日志写入控制台。 然而,Microsoft.Extensions.Logging提供多种日志记录提供者,包括记录到文件、数据库或与其他日志框架连接。 此外,可以创建自定义的日志提供程序,以根据特定要求格式化日志。
包括额外的日志提供程序
您可以通过在Create()函数中串联相关方法来添加其他日志记录源。 例如:
- 要添加调试器输出日志提供者,请使用
builder.AddDebug()。 - 要添加文件日志提供者,请使用
builder.AddFile("log.txt")。
在 IronPDF 上进行 MSLogging
IronPDF 擅长 HTML 到 PDF 的转换,确保准确保存原始布局和样式。 它非常适合从基于Web的内容中创建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");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class要在IronPDF中启用日志记录,您可以结合IronPDF内置的日志记录功能使用Microsoft.Extensions.Logging框架。 以下是如何在 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();
}
}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在此示例中,我们从LoggerFactory的实例。 然后我们从工厂为Program类创建一个日志记录器。
为了在IronPDF中启用日志记录,我们将静态loggerFactory的日志记录器。 通过此配置,您可以使用Logger.Log方法在IronPDF中记录消息。
在使用IronPDF执行必要操作后,您可以关闭和处置资源,然后通过处置loggerFactory来刷新日志消息。
注意:确保您已为Microsoft.Extensions.Logging和IronPDF安装了必要的依赖关系和包。
安装IronPDF
要安装 IronPDF 库,请按照以下步骤操作:
- 在 Visual Studio 中打开包管理器控制台。
- 输入以下命令,通过 NuGet 安装 IronPDF 库:
或者,可以通过在终端中运行以下命令使用 .NET CLI:
- 按 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(); // Wait for a key press before closing the application
}
}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() ' Wait for a key press before closing the application
End Sub
End Class该示例演示了一种简单的方法,在使用 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 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。
相关文章


