在C#项目中使用NLog进行日志记录的方法步骤
一、整体流程(核心步骤)
使用 NLog 的核心流程可总结为:安装 NuGet 包 → 配置 NLog.config → 代码中初始化 / 使用 Logger → 验证日志输出,下面分项目类型详细说明。
二、控制台 / 桌面应用(最基础场景)
步骤 1:安装 NLog 包
打开项目的 NuGet 包管理器,安装核心包:
1 2 3 4 |
|
步骤 2:添加 NLog.config 配置文件
三、ASP.NETCore Web 应用(主流场景)
- 在项目根目录新建
NLog.config文件(右键文件 → 属性 → 复制到输出目录 → 选择「始终复制」); - 粘贴以下基础配置(支持控制台 + 文件输出,可直接复用):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
步骤 1:C# 代码中使用 NLog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
步骤 2:验证效果
- 运行程序,控制台会输出日志内容;
- 查看项目输出目录(如
bin/Debug/net8.0/logs),会生成以当天日期命名的.log文件,包含完整日志。
步骤 3:安装适配包
1 |
|
步骤 4:配置 NLog.config
复用上面的NLog.config文件(无需修改,直接复制到项目根目录,设置「始终复制」)。
步骤 5:Program.cs 中集成 NLog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
步骤 6:Controller/Service 中使用
通过依赖注入获取ILogger(ASP.NET Core 推荐方式):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
四、关键注意事项
- 配置文件属性:务必将
NLog.config的「复制到输出目录」设为「始终复制」,否则程序运行时找不到配置; - 日志级别控制:
Trace/Debug:开发环境调试用,生产环境建议关闭(配置中minlevel设为Info);Info/Warn:生产环境常规记录;Error/Fatal:必须记录,用于排查问题;
- 异常日志规范:记录错误时务必传入
Exception对象,否则会丢失堆栈信息,无法定位问题; - 性能优化:文件日志建议开启
concurrentWrites="true"(多线程安全),keepFileOpen="false"(避免文件锁定)。
总结
- 核心步骤:安装包 → 配置
NLog.config(定义输出目标 / 规则)→ 代码中创建 / 注入ILogger→ 输出不同级别日志(异常日志务必传Exception对象); - 项目适配:控制台应用直接用
LogManager.GetCurrentClassLogger(),ASP.NET Core 需集成依赖注入并调用UseNLog(); - 关键规范:每个类对应一个 Logger(便于定位日志来源),异常日志必须包含堆栈信息,生产环境合理设置日志级别。
