.NET 帮助

Serilog .NET(如何为开发人员工作)

发布 2024年一月27日
分享:

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

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

了解 Serilog 的功能

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

结构化日志

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

灵活配置

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

水槽图书馆

Serilog 提供了各种汇函数库,允许您将日志事件发送到不同的目的地。一些常用的汇库包括

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

这些汇集库使 Serilog 与不同的日志基础架构和工具轻松集成。

Logging Enrichment

日志丰富化是一项允许在日志事件中添加额外上下文信息的功能。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。这种方法通常用于设置更复杂的日志记录场景,例如动态日志级别或自定义日志汇。例如,可以配置滚动日志文件,在特定时间间隔或达到一定大小时创建新的日志文件,确保高效的日志文件管理。

var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
VB   C#

与 ASP.NET Core 集成

将Serilog与ASP.NET Core集成需要通过软件包管理器控制台添加Serilog软件包,并在Program.cs文件中设置日志记录器。.NET 6中的 "var builder "和 "var app "语句可将Serilog无缝插入应用程序的日志记录基础架构中。这个过程用Serilog替换了默认的日志记录器,确保所有日志信息都通过Serilog管道进行处理。

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))
Dim app = builder.Build()
VB   C#

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

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

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

1.使用 NuGet 或软件包管理器控制台安装所需的 Iron Software Suite 软件包。

2.使用所需的汇库配置 Serilog,如用于日志文件的 Serilog.Sinks.File 或用于控制台输出的 Serilog.Sinks.Console。

3.在应用程序代码中使用 Iron 软件套件库,充分利用其功能并增强日志记录过程。这可能涉及生成 PDF、读取条形码或搜索网页内容等任务。

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

IronPDF

IronPDF 允许在 .NET 应用程序中创建、阅读和编辑 PDF。当结合 Serilog 生成 PDF 格式的日志数据报告时,这一点尤为有用,可以方便地分发和查看标准化格式的日志信息。

Serilog .NET(如何为开发人员工作):图 1 - IronPDF

IronOCR

IronOCR 是一款光学字符识别软件。 (光学字符识别) 该库可将图像翻译成 127 种语言的文本。这一功能可用于必须从图像或扫描文件中提取文本数据的日志记录场景,从而用更多的上下文信息丰富日志数据。

Serilog .NET(如何为开发人员工作):图 2 - IronOCR

IronXL

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

Serilog .NET(如何为开发人员工作):图 3 - IronXL

IronBarcode

IronBarcode 可方便地读写二维码和条形码。该库可在日志文件中嵌入或提取编码信息,从而提高日志信息的安全性和可追溯性。

Serilog .NET(如何为开发人员工作):图 4 - IronBarcode

结论

在ASP.NET Core应用程序中将Iron软件套件与Serilog集成在一起,不仅丰富了日志记录过程,还为日志数据的处理、展示和分析增加了一层多功能性。无论是生成PDF报告、处理基于图像的日志、处理Excel数据、管理日志文件大小、确保日志信息的安全,还是刮擦网页内容,Serilog与Iron软件套件的结合为.NET 6环境中的高级日志和数据处理开辟了无数的可能性。

Iron 软件套件提供了 免费试用这为开发人员提供了一个绝佳的机会来探索其特性和功能,以增强其 ASP.NET Core 应用程序,特别是在与 Serilog 集成以实现高级日志和数据处理功能时。

< 前一页
Microsoft Logging C#(对开发者的工作原理)
下一步 >
C# REPL(它对开发者的工作原理)

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

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