信息发布→ 登录 注册 退出

NLog.config配置文件怎么写 日志输出到文件

发布时间:2025-12-15

点击量:
要让NLog输出日志到文件,需在NLog.config中配置File类型target并用rules路由日志;fileName推荐用${basedir}避免路径问题,支持${shortdate}等渲染器实现按天归档,layout可自定义格式,配置后需设“始终复制”并验证日志生成。

nlog.config配置文件怎么写 日志输出到文件

要让 NLog 把日志输出到文件,核心是正确配置 NLog.config 文件(XML 格式),并确保目标(target)为 File,同时用规则(rules)把日志路由过去。

基础结构:NLog.config 文件骨架

在项目根目录或输出目录(如 bin/Debug)下新建一个名为 NLog.config 的 XML 文件,内容大致如下:


        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  
    
    
  


  
    
    
  


常用文件配置项说明

fileName 支持布局渲染器(Layout Renderers),灵活控制路径和文件名:

  • ${basedir}:程序运行目录(推荐,避免硬编码路径)
  • ${shortdate}:如 2025-06-15,适合按天分文件
  • ${longdate}:精确到毫秒的时间戳,可用于单行时间格式
  • ${processid}${threadid}:多进程/线程时防冲突
  • ${level}:可按级别分文件(如 error.log、info.log)

例如,按日期滚动的常见写法:

  name="fileTarget"
  fileName="${basedir}/logs/${shortdate}.log"
  archiveFileName="${basedir}/logs/archives/log.{#}.txt"
  archiveEvery="Day"
  archiveNumbering="Rolling"
  maxArchiveFiles="30"
  encoding="utf-8" />

日志内容格式(layout)怎么定制?

默认输出较简略。加 layout 属性可自定义每行日志样式:

  name="fileTarget"
  fileName="${basedir}/logs/app.log"
  layout="${longdate} [${level:uppercase=true}] ${logger} ${message} ${exception:format=tostring}" />

常用占位符:

  • ${longdate}:2025-06-15 14:23:05.123
  • ${level:uppercase=true}:INFO / ERROR
  • ${logger}:记录日志时的 logger 名(如 MyApp.Services.UserService
  • ${message}:实际日志内容
  • ${exception:format=tostring}:完整异常堆栈(仅当有异常时输出)

验证是否生效的小技巧

写完配置别急着跑业务,先快速验证:

  • 确保 NLog.config 的“复制到输出目录”属性设为“始终复制”(VS 中右键文件 → 属性)
  • 代码中获取 logger 后,手动写一条日志:
    var logger = LogManager.GetCurrentClassLogger();
    logger.Info("NLog 测试日志已发出");
  • 检查程序运行目录下是否生成了 logs/app.log,且内容符合预期
  • 如果没日志,打开 NLog 内部日志排查:

基本上就这些。不复杂但容易忽略路径权限、文件权限或配置未复制的问题。保持 fileName${basedir} 开头,基本能避开大部分路径坑。

以上就是NLog.config配置文件怎么写 日志输出到文件的详细内容,更多请关注其它相关文章!


相关文章: 百度网盘网页版入口 百度网盘网页版官方登录网址  Go Martini框架:动态服务解码后的图片内容  必由学登录入口 必由学官方网站在线访问链接  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|  Go语言HTML解析:利用Goquery精准获取指定元素内容  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  Win11输入法不见了怎么办_Windows11恢复语言栏显示方法  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  Lar*el Eloquent:高效统计带条件关联模型的数量  steam官方入口大全 steam账号注册及操作指南  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法  outlook中文官网入口地址 outlook官方中文版直达首页链接  qq音乐在线播放入口_qq音乐电脑版登录链接  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  AO3同人作品网入口 AO3搜索引擎官网永久地址  如何提高微信支付的安全性_微信支付安全防护与设置建议  俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  React中useState与局部变量:理解组件状态管理与渲染机制  晋江读书网页版在线登录 晋江读书电脑版官网  Go语言中JSON数据解析与字段访问教程  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  新三国志曹操传110级星符试炼夏侯渊极难攻略  Python类型检查:优化关联可选属性的Mypy推断策略  J*aScript中如何高效提取对象指定属性  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  win11如何加载ICC颜色配置文件 Win11校色文件安装与显示器色彩管理【指南】  护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  Archive of Our Own官网直达 AO3最新可用地址一览  在J*a中如何隐藏复杂性_使用门面模式组织对象交互  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  vivo云服务网页版登录 怎么登录vivo云服务网页版  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】  J*a实现学校排课程序_面向对象结构化项目示例  德邦快递查询平台 德邦快递物流信息查询入口  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  12306怎么选座位选到安静区_12306选座安静区域选择策略  在J*a中如何实现对象克隆避免共享数据_对象克隆安全实践指南  AO3最新镜像入口 Archive of Our Own官方平台访问  Python中如何避免重复条件判断:利用数据结构实现动态逻辑  PHP:从文本中提取带逗号的数字价格教程  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  必由学官网首页入口 必由学教师网页版登录指南 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!