.Net平台流行的日志记录库(Serilog)

2024-08-29 18:23:07 浏览数 (1)

1、Serilog

Serilog 是一个功能强大且灵活的日志记录库,易于使用且高度可定制。

使用教程:

  • 安装 Serilog 包

在 Visual Studio 中,通过 NuGet 管理器或者 .NET CLI 安装 Serilog 包:

Install-Package Serilog

  • 配置 Serilog 日志记录器

using Serilog;

class Program {

static void Main()

{

Log.Logger = new LoggerConfiguration()

.MinimumLevel.Debug()//最小的输出单位是Debug级别的

.MinimumLevel.Override("Microsoft", LogEventLevel.Information)//将Microsoft前缀的日志的最小输出级别改成Information

.Enrich.FromLogContext()

.WriteTo.Console() // 将日志输出到控制台

.WriteTo.File(@"./ConsoleLogs/log.txt", rollingInterval: RollingInterval.Day).CreateLogger();// 将日志写入文件,每天生成一个新文件

}

}

Serilog 默认情况下将日志记录到控制台(Console)。当你在应用程序中使用 Serilog 但没有指定其他的输出目标时,日志消息会显示在应用程序的控制台窗口。

如果你希望将日志写入特定的位置(如文件、数据库、远程服务等),你需要配置 Serilog 对应的输出插件。有多种 Serilog 输出插件可供选择,你可以根据需求选择合适的插件并进行配置。

以下是一些常见的 Serilog 输出插件:

  1. Serilog.Sinks.Console:将日志输出到控制台。
  2. Serilog.Sinks.File:将日志写入文件。
  3. Serilog.Sinks.RollingFile:将日志写入支持滚动的文件。
  4. Serilog.Sinks.Seq:将日志发送到 Seq 日志服务器。
  5. Serilog.Sinks.MSSqlServer:将日志写入到 SQL Server 数据库。
  6. Serilog.Sinks.MongoDB:将日志写入到 MongoDB 数据库。
  • 记录日志

使用 Serilog 记录不同级别的日志消息:

Log.Verbose("This is a verbose log message");

Log.Debug("This is a debug log message");

Log.Information("This is an information log message");

Log.Warning("This is a warning log message");

Log.Error("This is an error log message");

Log.Fatal("This is a fatal log message");

  • 更多用法
  1. 过滤日志: 使用 Filter 和 Enricher 控制日志输出。
  2. 日志格式: 自定义日志格式,包括时间戳、日志级别等。
  3. 结构化日志: 使用结构化日志提供更多的上下文信息。

更多信息请参考官方文档:https://github.com/serilog/serilog/wiki

0 人点赞