

新闻资讯
技术学院要让NLog输出日志到文件,需在NLog.config中配置File类型target并用rules路由日志;fileName推荐用${basedir}避免路径问题,支持${shortdate}等渲染器实现按天归档,layout可自定义格式,配置后需设“始终复制”并验证日志生成。
要让 NLog 把日志输出到文件,核心是正确配置 NLog.config 文件(XML 格式),并确保目标(target)为 File,同时用规则(rules)把日志路由过去。
在项目根目录或输出目录(如 bin/Debug)下新建一个名为 NLog.config 的 XML 文件,内容大致如下:
fileName 支持布局渲染器(Layout Renderers),灵活控制路径和文件名:
2025-06-15,适合按天分文件
rocessid} 或 ${threadid}:多进程/线程时防冲突例如,按日期滚动的常见写法:
fileName="${basedir}/logs/${shortdate}.log"
archiveFileName="${basedir}/logs/archives/log.{#}.txt"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="30"
encoding="utf-8" />
默认输出较简略。加 layout 属性可自定义每行日志样式:
fileName="${basedir}/logs/app.log"
layout="${longdate} [${level:uppercase=true}] ${logger} ${message} ${exception:format=tostring}" />
常用占位符:
MyApp.Services.UserService)写完配置别急着跑业务,先快速验证:
NLog.config 的“复制到输出目录”属性设为“始终复制”(VS 中右键文件 → 属性)logs/app.log,且内容符合预期基本上就这些。不复杂但容易忽略路径权限、文件权限或配置未复制的问题。保持 fileName 用 ${basedir} 开头,基本能避开大部分路径坑。