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 必须包含 <targets></targets>、<rules></rules>,且根节点带标准命名空间:
<targets></targets>:定义“写到哪”,比如文件、控制台、数据库。每个 <target></target> 要有唯一 name 和 xsi:type(如 File、Console)<rules></rules>:定义“谁写、写什么级别、写到哪个 target”,靠 name(支持通配符 *)、minlevel(如 Info)、writeTo 关联起来<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></nlog>
示例(控制台+文件双输出):
文件输出最常用,几个关键点能避免踩坑:
${basedir} 指向程序运行目录,${shortdate} 自动生成日期(如 2025-12-11)archiveEvery="Day" 每天新建文件,maxArchiveDays="30" 自动清理30天前日志layout="${longdate} ${level} ${message} ${exception:format=ToString}" 才能打出堆栈
<target xsi:type="AsyncWrapper">...</target> 包裹 File target,异步写入不阻塞主线程规则不是越多越好,关键是匹配逻辑清晰:
name="*" 匹配所有 logger;name="MyApp.Services.*" 只匹配该命名空间下的日志器minlevel="Info" 就不会记录 Debug 及以下<logger name="Microsoft.*" minlevel="Off" final="true"></logger>,final="true" 表示终止后续匹配基本上就这些。配置不复杂但容易忽略细节,比如文件没复制、命名空间写错、路径变量拼错——检查 internal log(开 internalLogFile)能快速定位问题。
以上就是NLog.config文件怎么配置 NLog日志XML配置方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号