当前位置:首页 > C# > 正文

Serilog日志框架实战指南(C#项目集成Serilog的详细教程)

在现代C#应用程序开发中,高效的日志记录是调试、监控和维护系统稳定性的关键。而 Serilog 正是目前最受欢迎的结构化日志框架之一。本文将手把手教你如何将 Serilog C#日志框架 集成到你的 .NET 项目中,即使是编程小白也能轻松上手!

Serilog日志框架实战指南(C#项目集成Serilog的详细教程) Serilog C#日志框架  C#项目集成Serilog .NET日志记录教程 Serilog配置方法 第1张

为什么选择 Serilog?

Serilog 支持结构化日志,这意味着你可以将日志信息以键值对的形式存储,便于后续分析。它还支持多种输出目标(如文件、控制台、数据库、Elasticsearch等),并且配置简单、性能优异。

第一步:创建或打开你的 C# 项目

你可以使用 Visual Studio 或 VS Code 创建一个 .NET Core / .NET 5+ 控制台应用、Web API 或 ASP.NET Core Web 应用。本教程以 .NET 6 控制台程序为例。

第二步:安装 Serilog NuGet 包

打开终端(或 Visual Studio 的“包管理器控制台”),执行以下命令来安装必要的 Serilog 包:

dotnet add package Serilogdotnet add package Serilog.Sinks.Consoledotnet add package Serilog.Sinks.File

- Serilog:核心库
- Serilog.Sinks.Console:将日志输出到控制台
- Serilog.Sinks.File:将日志写入文件

第三步:在 Program.cs 中配置 Serilog

打开 Program.cs 文件,替换为以下代码:

using Serilog;// 配置 SerilogLog.Logger = new LoggerConfiguration()    .MinimumLevel.Debug() // 设置最低日志级别    .WriteTo.Console()    // 输出到控制台    .WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day) // 按天分割日志文件    .CreateLogger();try{    Log.Information("应用程序启动成功!");    // 你的业务逻辑代码    Console.WriteLine("Hello, Serilog!");    Log.Debug("这是一个调试日志");    Log.Warning("这是一个警告日志");}catch (Exception ex){    Log.Fatal(ex, "应用程序发生严重错误");}finally{    Log.CloseAndFlush(); // 确保日志写入完成}

这段代码完成了以下操作:

  • 设置日志最低级别为 Debug
  • 同时输出日志到控制台和文件(文件路径为 logs/log-20240520.txt 格式)
  • 记录不同级别的日志(Information、Debug、Warning、Fatal)
  • 在程序结束前调用 CloseAndFlush() 确保所有日志写入磁盘

第四步:运行项目并查看日志

运行你的程序,你会在控制台看到日志输出,同时在项目根目录下生成 logs 文件夹,里面包含当天的日志文件。

进阶:在 ASP.NET Core 中集成 Serilog

如果你使用的是 ASP.NET Core 项目,还可以通过 UseSerilog() 方法在 Program.cs 中全局集成:

using Serilog;var builder = WebApplication.CreateBuilder(args);// 配置 SerilogLog.Logger = new LoggerConfiguration()    .WriteTo.Console()    .WriteTo.File("logs/webapp-.txt", rollingInterval: RollingInterval.Day)    .CreateLogger();builder.Host.UseSerilog(); // 关键:将 Serilog 注入到 Hostvar app = builder.Build();app.MapGet("/", () => "Hello Serilog in ASP.NET Core!");app.Run();

这样,整个 Web 应用的日志都会通过 Serilog 处理,包括请求日志、异常日志等。

总结

通过本教程,你已经掌握了 C#项目集成Serilog 的基本方法。无论是控制台应用还是 Web 应用,Serilog 都能提供强大而灵活的日志记录能力。掌握 .NET日志记录教程 中的核心技巧,将极大提升你的开发效率和系统可观测性。

提示:更多高级功能(如 JSON 格式输出、日志过滤、自定义属性等)可参考官方文档:https://serilog.net/

关键词回顾:Serilog C#日志框架C#项目集成Serilog.NET日志记录教程Serilog配置方法