如何使用C#实现自定义日志记录

How to use Custom Logging in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

通过 C# 的自定义日志功能,您可以实现量身定制的日志系统,捕捉特定于应用程序的事件和消息。 使用IronPDF,您可以通过将 LoggingMode 设置为 Custom 并分配您的日志记录器实现,将所有 PDF 处理日志重定向到您的自定义日志记录器。 无论您使用的是 NLog、Serilog、log4net 还是自定义解决方案,该功能都能让您将 IronPdf 的详细日志输出与现有日志基础架构相集成。

当您需要集中多个组件的日志、应用自定义格式、按严重程度过滤或将日志路由到特定目的地(如文件、数据库或监控服务)时,自定义日志就显得非常重要。 通过使用 IronPDF 实现自定义日志记录,您可以完全控制如何在应用程序中跟踪 PDF 生成和处理事件。

快速入门:使用IronPDF实现自定义日志记录

从使用 IronPDF 在 C# 中自定义日志开始。 本指南展示了如何将 LoggingMode 设置为 Custom 并将其与您的日志记录器类链接起来。 将 IronPDF 消息导向您的自定义日志记录器,以监控和管理应用程序日志。 设置简单明了,可增强应用程序的日志记录功能。 有关 IronPDF 功能的全面概述,请参阅我们的 快速入门指南

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
    IronSoftware.Logger.CustomLogger = new MyCustomLogger();
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何实现自定义日志示例?

要使用自定义日志记录,请将 LoggingMode 属性更改为 LoggingModes.Custom。 然后将 CustomLogger 属性分配给您的自定义日志记录器类。 这样就能灵活地与各种日志框架集成,并在整个应用程序中保持一致的日志记录模式。

实施过程只需极少的设置。一旦配置完成,所有 IronPDF 操作(包括 HTML 到 PDF 的转换、PDF 操作和渲染)都会通过您的自定义日志记录器自动发送日志信息。 这种整合可确保您捕捉到有关 PDF 处理操作的关键信息。

为什么要使用 IronPDF 的自定义日志记录?

:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging.cs
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
IronSoftware.Logger.CustomLogger = new CustomLoggerClass("logging");
$vbLabelText   $csharpLabel

IronPDF 日志将被定向到自定义日志记录器对象。 信息与 IronPdf 日志中的信息保持一致; 这些信息将被转发到自定义日志记录器。 自定义日志记录器的实现决定了如何处理消息。 请看下面的自定义日志记录器类示例。

自定义日志为生产应用程序提供了多项优势:

  • 集中式日志管理:将 IronPDF 日志与您现有的日志基础架构相集成
  • 增强调试:捕获有关 PDF 操作的详细信息以进行故障排除
  • 性能监控:跟踪呈现时间和资源使用情况
  • 错误跟踪:自动捕获并报告 PDF 生成失败
  • 合规性:为受监管行业的文档生成维护审计跟踪

对于需要异步处理的应用程序,自定义日志记录有助于跟踪并发的 PDF 操作并识别潜在的瓶颈。

自定义日志记录器类是什么样的?

:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging-class.cs
public class CustomLoggerClass : ILogger
{
    private readonly string categoryName;

    public CustomLoggerClass(string categoryName)
    {
        this.categoryName = categoryName;
    }

    public IDisposable BeginScope<TState>(TState state)
    {
        return null;
    }

    public bool IsEnabled(LogLevel logLevel)
    {
        return true;
    }

    public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
    {
        if (!IsEnabled(logLevel))
        {
            return;
        }

        // Implement your custom logging logic here.
        string logMessage = formatter(state, exception);

        // You can use 'logLevel', 'eventId', 'categoryName', and 'logMessage' to log the message as needed.
        // For example, you can write it to a file, console, or another destination.

        // Example: Writing to the console
        Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}");
    }
}
$vbLabelText   $csharpLabel

该实现遵循标准的 Microsoft.Extensions.Logging.ILogger 接口,使其与.NET日志生态系统兼容。 记录仪类包括

  • 类别名称:有助于识别日志信息的来源
  • 日志级别过滤:控制要捕获的严重性级别
  • 灵活输出:将日志路由到任何目的地(控制台、文件、数据库等)
  • 异常处理:正确格式化和记录异常详细信息 -状态管理:支持使用 BeginScope 进行结构化日志记录

对于高级场景,请探讨影响日志输出的渲染选项,尤其是在处理复杂的 HTML 转换或使用Chrome 渲染引擎时。

自定义日志输出看起来如何?

在本例中,日志信息的前缀为附加信息。

Visual Studio 调试器控制台显示 IronPDF 部署日志,以及 Chrome 客户端初始化和库加载情况

控制台输出展示了自定义日志如何提供对 IronPDF 内部运行的详细了解。 您可以看到

  • Chrome 客户端初始化步骤
  • 创建候选部署
  • 本地库加载序列
  • 成功的组件部署确认

这种详细程度在调试 PDF 生成问题或优化性能时非常宝贵。 结构化的格式便于以编程方式解析日志或与日志分析工具集成。

自定义日志记录实施的最佳实践

在使用 IronPDF 实现自定义日志时,请考虑以下最佳实践:

1.使用适当的日志级别:配置您的日志记录器以捕获适当的细节级别,而不会使日志存储不堪重负 2.包含上下文信息:添加请求 ID、用户信息或事务详细信息,以关联 PDF 操作 3.处理敏感数据:确保您的记录仪不会暴露 PDF 内容中的机密信息 4.监控性能:跟踪 PDF 生成时间以确定优化机会 5.设置警报:配置重要错误或性能下降的通知

对于生产部署,尤其是使用许可证密钥时,正确的日志记录可确保顺利运行和快速解决问题。

常见日志问题的故障排除

如果您在使用自定义日志时遇到问题,请联系我们:

  • 验证您的日志记录器是否正确实现了 ILogger 接口
  • 在执行任何IronPDF操作之前,请检查是否已设置 LoggingMode
  • 确保您的日志记录器对并发操作是线程安全的
  • 如果向文件或外部系统写入内容,请审查日志权限

有关其他故障排除资源,请查阅我们的故障排除指南或浏览API参考,了解有关日志属性和方法的详细文档。

准备好看看您还能做些什么吗? 点击此处查看我们的教程页面:附加功能

常见问题解答

什么是 C# 中的自定义日志,它如何与 PDF 处理协同工作?

通过 IronPDF 的 C# 自定义日志功能,您可以实现量身定制的日志系统,捕捉 PDF 处理事件和消息。通过将 LoggingMode 设置为自定义并指定您的日志记录器实现,IronPDF 会将所有 PDF 生成和操作日志重定向到您的自定义日志记录器,从而实现与 NLog、Serilog 或 log4net 等现有日志记录基础架构的集成。

如何启用 PDF 操作的自定义日志?

要启用 IronPDF 的自定义日志记录功能,请将 IronSoftware.Logger.LoggingMode 设置为 LoggingModes.Custom,并将自定义日志记录器类分配给 IronSoftware.Logger.CustomLogger。配置完成后,所有 IronPDF 操作(包括 HTML 到 PDF 的转换和 PDF 操作)都将自动通过自定义日志记录器发送日志信息。

实施自定义日志生成 PDF 有哪些好处?

IronPDF 的自定义日志功能可完全控制如何跟踪 PDF 处理事件。它使您能够集中管理来自多个组件的日志,应用自定义格式,按严重程度过滤,并将日志路由到特定目的地(如文件、数据库或监控服务),从而增强应用程序的日志记录功能。

能否将 PDF 处理日志与现有日志框架集成?

是的,IronPDF 的自定义日志功能可与流行的日志框架无缝集成,包括 NLog、Serilog、log4net 或任何自定义日志解决方案。这可确保在捕获 PDF 处理操作的关键信息的同时,在整个应用程序中保持一致的日志记录模式。

实现自定义日志的最基本工作流程是什么?

最基本的工作流程包括 5 个步骤:从 NuGet 下载 IronPDF,将 LoggingMode 设置为 LoggingModes.Custom,将 CustomLogger 指定给您的自定义日志记录器对象,所有日志消息都将转发到您的自定义日志记录器。最后,输出日志信息,查看 IronPDF 操作的日志。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。