.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 发送日志事件。

    这些汇集库可以方便地将 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 文件定义日志级别、输出目的地(如日志文件或控制台)此外,翻译还必须包含以下内容:.NET、Java、Python 或 Node js。 配置文件方法提供了在不修改代码的情况下更改日志记录行为的灵活性。 您可以通过在 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#

将 Iron Software Suite 与 Serilog 集成到 ASP.NET Core 中

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

要将 Iron Software Suite 与 Serilog 集成到 ASP.NET Core 应用程序中,请遵循以下一般步骤:

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

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

  3. 在您的应用程序代码中使用 Iron Software Suite 库,充分利用其功能并增强日志记录过程。 这可能涉及生成 PDF、读取 BarCode 或抓取网页内容等任务。

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

IronPDF

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

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

IronOCR

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

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

IronXL

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

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

IronBarcode

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

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

结论

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

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

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

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

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