导读:本期聚焦于小伙伴创作的《C#的日志记录是什么?如何集成Serilog或NLog?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#的日志记录是什么?如何集成Serilog或NLog?》有用,将其分享出去将是对创作者最好的鼓励。

C#的日志记录(Logging)是指在应用程序运行过程中,将程序的关键运行信息、错误提示、调试数据等内容按照指定格式输出到特定存储位置的功能,是开发和维护阶段定位问题、分析程序行为的重要手段。

C#的日志记录是什么?如何集成Serilog或NLog?

C#日志记录的核心作用

日志记录能够帮助开发者在程序出现问题时快速定位故障点,同时也是了解程序运行流程、统计业务数据的重要方式,主要作用包括:

  • 记录程序运行过程中的异常信息,方便排查线上故障
  • 输出调试信息,辅助开发阶段的功能验证
  • 记录关键业务操作,满足审计和追溯需求
  • 监控程序运行状态,及时发现性能瓶颈或异常行为

Serilog集成步骤

Serilog是C#生态中非常流行的结构化日志框架,支持将日志输出到控制台、文件、数据库等多种目标,集成过程如下:

1. 安装依赖包

通过NuGet安装Serilog核心包和对应的输出目标包,以输出到控制台和文件为例:

// 安装以下NuGet包
// Serilog
// Serilog.Sinks.Console
// Serilog.Sinks.File

2. 配置Serilog并写入日志

在程序入口处完成Serilog的配置,之后就可以在业务代码中调用日志方法:

using Serilog;

class Program
{
    static void Main(string[] args)
    {
        // 配置Serilog,设置输出到控制台和文件,最小日志级别为Information
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Information()
            .WriteTo.Console()
            .WriteTo.File("logs/myapp.log", rollingInterval: RollingInterval.Day)
            .CreateLogger();

        try
        {
            Log.Information("程序启动成功");
            // 模拟业务逻辑
            int a = 10, b = 0;
            int result = a / b;
        }
        catch (Exception ex)
        {
            Log.Error(ex, "程序运行出现错误");
        }
        finally
        {
            Log.CloseAndFlush();
        }
    }
}

NLog集成步骤

NLog是另一款成熟的C#日志框架,配置灵活且扩展性强,集成过程如下:

1. 安装依赖包

通过NuGet安装NLog核心包:

// 安装NuGet包 NLog

2. 添加NLog配置文件

在项目中添加NLog.config配置文件,设置日志输出规则:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <!-- 输出到控制台 -->
    <target name="console" xsi:type="Console" />
    <!-- 输出到文件,按天滚动 -->
    <target name="file" xsi:type="File" fileName="logs/myapp-${shortdate}.log" />
  </targets>

  <rules>
    <!-- 所有日志输出到控制台和文件 -->
    <logger name="*" minlevel="Info" writeTo="console,file" />
  </rules>
</nlog>

3. 业务代码中使用NLog

在代码中引入NLog命名空间,获取日志实例后写入日志:

using NLog;

class Program
{
    // 获取当前类的日志实例
    private static readonly ILogger Logger = LogManager.GetCurrentClassLogger();

    static void Main(string[] args)
    {
        try
        {
            Logger.Info("程序启动成功");
            // 模拟业务逻辑
            int a = 10, b = 0;
            int result = a / b;
        }
        catch (Exception ex)
        {
            Logger.Error(ex, "程序运行出现错误");
        }
    }
}

两种框架的选择建议

如果是新项目且需要结构化日志能力,优先选择Serilog,其配置方式更简洁,结构化日志支持更完善;如果是老项目已经使用NLog,或者需要更灵活的配置文件管理,NLog是更合适的选择,两者的性能表现都能满足大部分业务场景的需求。

C#LoggingSerilogNLog修改时间:2026-07-23 09:00:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。