NLog.config 是 XML 格式配置文件,用于声明式配置 NLog;需命名为 NLog.config、Build Action 为 Content、Copy to Output Directory 为 Copy always/if newer,包含 和 ,支持热重载与易维护。
是一个 XML 格式的
配置文件
,用于在 .NET 应用中声明式地配置
日志框架的行为——它不是代码,但能替代大部分手动调用
API 的工作。
为什么用
而不是代码配置?
直接写 XML 配置更易维护、无需重新编译、支持热重载(配合
和
),也方便运维人员调整日志级别或输出路径。但前提是:文件名必须是
,且
设为
,
设为
或
。
的基本结构长什么样?
最小可用配置包含
(输出目的地)和
(日志
路由
逻辑)。以下是一个典型示例:
注意几个关键点:
php版微信js-sdk支付接口类
php版微信js-sdk支付接口类
下载
表示运行时修改文件后自动生效(需确保文件未被其他进程独占锁定)
有助于快速发现 XML 语法错误或路径不可写等问题
是运行目录,不是项目根目录;若要写入程序同级
文件夹,必须存在该目录,否则日志会静默失败
中的
是通配符,匹配所有 logger 名称(如
)
常见错误:日志没生成、控制台没输出、文件权限拒绝
这些往往不是 NLog 本身的问题,而是配置细节或环境导致的静默失败:
日志文件路径含非法字符(如
在 XML 中需写成
或用正斜杠
)
目标文件夹不存在,且 NLog 默认不会自动创建多级目录(需加
到
)
ASP.NET Core 中未正确初始化:需在
开头调用
,否则默认走空配置
使用
集成时,
仍有效,但
的日志级别受
中
影响,可能过滤掉低级别日志
最常被忽略的是:NLog 不报错也不写日志,常常是因为目标路径不可写,或
没复制到输出目录。建议首次调试时启用内部日志:
,它会告诉你到底卡在哪一步。
NLog.configNLogLogConfigurationNLog.configkeepFileOpen="false"autoReload="true"NLog.configBuild ActionContentCopy to Output DirectoryCopy alwaysCopy if newerNLog.config
autoReload="true"throwConfigExceptions="true"${basedir}logs*LogManager.GetLogger("UserService")\/createDirs="true"Program.csLogManager.LoadConfiguration("NLog.config")Microsoft.Extensions.LoggingNLog.configILoggerappsettings.json"Logging:LogLevel:Default"NLog.confignlog internalLogFile="nlog-internal.log"