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 输出插件:
- Serilog.Sinks.Console:将日志输出到控制台。
- Serilog.Sinks.File:将日志写入文件。
- Serilog.Sinks.RollingFile:将日志写入支持滚动的文件。
- Serilog.Sinks.Seq:将日志发送到 Seq 日志服务器。
- Serilog.Sinks.MSSqlServer:将日志写入到 SQL Server 数据库。
- 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");
- 更多用法
- 过滤日志: 使用 Filter 和 Enricher 控制日志输出。
- 日志格式: 自定义日志格式,包括时间戳、日志级别等。
- 结构化日志: 使用结构化日志提供更多的上下文信息。
更多信息请参考官方文档:https://github.com/serilog/serilog/wiki