程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

C# 使用SeriLog进行日志记录

balukai 2025-05-22 09:13:49 文章精选 2 ℃

C# Serilog 是一个流行的开源日志记录库,用于在 C# 应用程序中实现灵活和可扩展的日志记录。它提供了一种简单而强大的方式来记录应用程序的日志,并支持各种输出目标和格式化选项。

以下是使用示例,展示了如何在 C# 中使用 Serilog:

  • 在项目中安装 Serilog 的 NuGet 包,可以使用以下命令来安装 Serilog:
dotnet add package Serilog
  • 在应用程序的入口点配置 Serilog,并开始记录日志。以下是一个示例:
using Serilog;

class Program
{
    static void Main()
    {
        // 设置日志级别
        Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .WriteTo.Console()
        .WriteTo.File("log.txt")
        .CreateLogger();
      
        // 记录日志
        Log.Debug("This is a debug message");
        Log.Information("This is an information message");
        Log.Warning("This is a warning message");
        Log.Error("This is an error message");

        Log.CloseAndFlush();
    }
}

在示例中配置了 Serilog,将日志输出到控制台和一个名为 "log.txt" 的文件中。

使用 Log.Information() 方法记录一条日志消息。

使用 Log.CloseAndFlush() 方法关闭日志记录器并刷新任何待处理的日志消息。

还可以使用 Serilog 的其他功能来进一步配置和使用日志记录。

以下是其它一些常见的用法示例:

  • 设置日志级别:
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

将日志级别设置为 Debug,这意味着只有 Debug 级别及更高级别的日志消息才会被记录。

  • 结构化日志记录:
Log.Information("User {Username} logged in", username);

使用结构化日志记录,将用户名作为属性传递给日志消息。

  • 添加额外的属性:
Log.Information("Order {OrderId} created by {Username}", orderId, username);

添加额外的属性,包括订单 ID 和用户名。

  • 使用过滤器:
Log.Logger = new LoggerConfiguration()
    .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Warning)
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

使用过滤器仅记录警告级别的日志消息。

Serilog 还提供了许多其他功能,例如日志格式化、日志存储、日志事件处理等。


最近发表
标签列表