IRONSOFTWAREHOME
开发者更新

Serilog .NET(开发者如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月21日

.NET 应用程序中 Serilog 日志记录器配置和结构化诊断日志行为配置的介绍

.NET Core 中,创建高效的结构化 Serilog 日志配置对于诊断和理解应用程序行为或日志事件至关重要。 在众多日志库中,Serilog 因其强大的结构化日志消息能力而脱颖而出。 与传统日志记录不同,结构化日志记录将日志级别消息格式化为结构化数据,使其更易于分析和查询。 本文探讨了 Serilog 如何在 .NET 6 应用程序中提升日志记录过程,确保每个日志事件不仅仅是一个字符串,而是一个结构化的、可查询的对象。 这种方法将日志消息转变为一种战略资产,促进更有效的监控和分析。

了解 Serilog 的功能

Serilog 是一个用于 .NET 应用程序的强大而灵活的日志库。 它提供多种功能,以增强日志记录体验,并使诊断和分析应用程序行为更加容易。 本节将探讨 Serilog 提供的一些关键功能。

结构化日志记录

Serilog 的一个突出特点是其对结构化日志记录的支持。 Serilog 允许您记录结构化数据,而不仅仅是简单地记录纯文本消息。 这种结构化数据可以是 JSON 对象、字典或任何其他可以序列化的类型。 通过记录结构化数据,您可以使用 Elasticsearch 或 Splunk 之类的工具轻松分析和查询日志事件。

灵活的配置

Serilog 提供灵活的配置选项,允许您根据应用程序的需要自定义日志记录行为。 您可以通过编程方式或使用配置文件来配置 Serilog。 这种灵活性使您能够在不需要重新启动应用程序的情况下,在运行时调整日志记录行为。

Sink 库

Serilog 提供各种 sink 库,允许您将日志事件发送到不同的目的地。 一些受欢迎的 sink 库包括:

  • Serilog.Sinks.Console: 将日志事件发送到控制台。
  • Serilog.Sinks.File: 将日志事件写入文本文件。
  • Serilog.Sinks.Seq: 将日志事件发送到 Seq,一个结构化日志服务器。
  • Serilog.Sinks.Elasticsearch: 将日志事件发送到 Elasticsearch。

这些 sink 库使 Serilog 可以轻松集成到不同的日志记录基础架构和工具中。

日志丰富化

日志丰富化是一种允许您向日志事件添加额外上下文信息的功能。 Serilog 提供各种丰富器,可以自动向日志事件中添加诸如时间戳、线程 ID 或日志级别等信息。 您还可以创建自定义丰富器以添加特定于应用程序的信息。

日志过滤

Serilog 允许您基于各种标准过滤日志事件。 您可以配置过滤器以根据日志级别、属性值或任何其他条件排除或包括日志事件。 这种过滤功能使您能够专注于与分析或故障排除最相关的日志事件。

通过了解和利用这些功能,您可以利用 Serilog 的强大功能来增强日志记录能力,并获得有关应用程序行为的宝贵见解。

结构化日志:核心功能

Serilog 的主要优势在于将日志消息转变为结构化数据。 与其他输出纯文本的日志库不同,Serilog 生成的是结构化的 JSON 格式日志,简化了日志数据的解析和查询。 这种能力对于现代应用程序至关重要,因为日志分析和监控是运营智能的重要组成部分。 当日志消息被输入到像 ELK(Elasticsearch、Logstash、Kibana)堆栈这样的系统进行高级分析时,结构化日志尤为有用。

丰富的日志事件细节

Serilog 通过上下文信息丰富日志事件,为应用程序内部的活动提供一个全面的视图。 每个日志事件可以包含许多细节,除了简单的日志消息外,还包括时间戳、日志级别、异常细节和自定义属性。 这使得 Serilog 在日志深度和清晰度方面优于其他日志库,提供给开发人员关于应用程序行为和性能的关键见解。

在 ASP.NET Core 中实现 Serilog

要在.NET 6的ASP.NET Core应用程序中集成Serilog,首先通过appsettings.json文件或Serilog配置部分配置Serilog。 此配置决定如何、在哪里和捕获哪些日志数据。

通过配置文件

使用配置 JSON 文件定义日志级别、输出目的地(如日志文件或控制台)和日志输出格式。 配置文件方法提供了在不修改代码的情况下更改日志记录行为的灵活性。 这是通过在appsettings.json文件中指定设置完成的,允许您将日志输出定向到各种接收器,如控制台、文件,甚至基于云的日志管理服务。

通过代码编程

或者,可以在代码中直接使用LoggerConfiguration类配置Serilog。 这种方法通常用于设置更复杂的日志场景,例如动态日志级别或自定义日志 sink。 例如,您可以配置一个滚动日志文件,在特定时间间隔或达到某一大小时创建新的日志文件,确保日志文件管理的效率。

// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();

与 ASP.NET Core 的集成

将Serilog与ASP.NET Core集成涉及通过程序包管理器控制台添加Serilog包,并在Program.cs文件中设置记录器。.NET 6中的var app语句无缝地将Serilog接入应用程序的日志记录基础设施中。 此过程用 Serilog 替换默认记录器,确保所有日志消息都通过 Serilog 管道处理。

var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
    
var app = builder.Build();

将 Iron 软件套件与 ASP.NET Core 中的 Serilog 集成

Iron 软件套件提供了一系列 C# 库,可以显著增强使用 Serilog 的 .NET 6 应用程序中的日志记录功能。 该套件包括多种工具,如 IronPDF、IronOCR、IronXL、IronZIP、IronQR、IronBarcode 和 IronWebScraper,每个工具都提供了独特的功能,可以集成到 ASP.NET Core 应用程序中以增强其日志记录和数据处理能力。

要在 ASP.NET Core 应用程序中将 Iron 软件套件与 Serilog 集成,请按以下一般步骤操作:

  1. 使用 NuGet 或包管理器控制台安装所需的 Iron 软件套件包。
  2. 使用所需的 sink 库(例如用于日志文件的 Serilog.Sinks.File 或用于控制台输出的 Serilog.Sinks.Console)配置 Serilog。
  3. 在应用程序的代码中使用 Iron 软件套件库,以利用其功能并增强日志记录过程。 这可能涉及任务,例如生成 PDF、读取条形码或抓取网络内容。

通过将 Iron 软件套件与 Serilog 集成,您可以扩展 ASP.NET Core 应用程序的日志记录功能,并利用这些库提供的附加功能。

IronPDF

IronPDF 允许在 .NET 应用程序中创建、读取和编辑 PDF。 这在与 Serilog 结合生成日志数据的 PDF 报告时尤其有用,可以在标准化格式中轻松分发和查看日志信息。

Serilog .NET(开发者如何使用):图1 - IronPDF

IronOCR

IronOCR 是一个光学字符识别(OCR)库,可以将图像翻译为 125 种语言的文本。 该功能可用于需要从图像或扫描文档中提取文本数据的日志记录场景,从而使用更多上下文信息丰富日志数据。

Serilog .NET(开发者如何使用):图2 - IronOCR

了解更多关于 IronXL 是一个 Excel 库,可帮助处理 Excel 文件而无需安装 Excel。

IronXL 提供无需 Office Interop 的工作 Excel 的功能。 这在日志记录中尤其有用,因为日志数据可以导出到 Excel 进行进一步分析和报告,提供了一个熟悉的数据操作和可视化界面。

Serilog .NET(开发者如何使用):图3 - IronXL

开始使用 IronBarcode 是一个专为 .NET Framework设计的条码读取和写入库。

IronBarcode 促进 QR 码和条形码的读取和生成。 该库可以在日志文件中嵌入或提取编码信息,增强日志信息的安全性和可追溯性。

Serilog .NET(开发者如何使用):图4 - IronBarcode

结论

在 ASP.NET Core 应用程序中集成 Iron 软件套件和 Serilog 既丰富了日志记录过程,又增加了处理、呈现和分析日志数据的多功能性。 无论是生成 PDF 报告、处理基于图像的日志、处理 Excel 数据、管理日志文件大小、安全日志信息还是抓取网络内容,将 Serilog 与 Iron 软件套件结合使用,为 .NET 6 环境中的高级日志记录和数据处理打开了无数可能性。

Iron 软件套件提供 Iron 软件 C# 库的免费试用版,这是开发人员探索其功能和能力以增强其 ASP.NET Core 应用程序的绝佳机会,尤其是与 Serilog 集成以实现高级日志记录和数据处理功能时。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起