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

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是更合适的选择,两者的性能表现都能满足大部分业务场景的需求。