

新闻资讯
技术学院NLog.config 是 NLog 框架的核心 XML 配置文件,需放在根目录并设为“始终复制”,包含 targets(输出目标)、rules(日志规则)及标准命名空间,支持控制台、文件等多目标输出与精准级别过滤。
NLog.config 文件是 NLog 日志框架的核心配置入口,用 XML 格式定义日志写到哪、按什么规则写、格式长什么样。只要文件位置正确、结构合法、目标和规则匹配,日志就能自动生效。
NLog 启动时会按固定顺序查找配置,找到第一个就停止搜索,找不到直接失败:
MyApp.exe.config → MyApp.exe.nlog → NLog.config(必须叫这个名字,大小写敏感)→ NLog.dll.nlog
web.config → web.nlog → NLog.config → NLog.dll.nlog
NLog.config,放在项目根目录,并在 Visual Studio 中右键文件 → 属性 → “复制到输出目录”设为“如果较新则复制”或“始终复制”一个最小可用的 NLog.config 必须包含 、,且根节点带标准命名空间:
:定义“写到哪”,比如文件、控制台、数据库。每个 要有唯一 name 和 xsi:type(如 File、Console):定义“谁写、写什么级别、写到哪个 target”,靠 name(支持通配符 *)、minlevel(如 Info)、writeTo 关联起来
示例(控制台+文件双输出):
文件输出最常用,几个关键点能避免踩坑:
${basedir} 指向程序运行目录,${shortdate} 自动生成日期(如
2025-12-11)archiveEvery="Day" 每天新建文件,maxArchiveDays="30" 自动清理30天前日志layout="${longdate} ${level} ${message} ${exception:format=ToString}" 才能打出堆栈
... 包裹 File target,异步写入不阻塞主线程规则不是越多越好,关键是匹配逻辑清晰:
name="*" 匹配所有 logger;name="MyApp.Services.*" 只匹配该命名空间下的日志器minlevel="Info" 就不会记录 Debug 及以下,final="true" 表示终止后续匹配基本上就这些。配置不复杂但容易忽略细节,比如文件没复制、命名空间写错、路径变量拼错——检查 internal log(开 internalLogFile)能快速定位问题。