信息发布→ 登录 注册 退出

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配置文件怎么写 日志输出到文件的详细内容,更多请关注其它相关文章!


相关文章: MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  Lar*el DB::listen 事件中的查询执行时间单位解析  Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  优化大型XML文件解析:基于Python流式处理的内存高效方案  Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  Win11怎么关闭快速启动_Win11彻底关机设置教程  新手怎么开始学化妆 零基础化妆入门教程  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  圆通快递查询实时追踪 圆通物流包裹状态快速查看  React中useState与局部变量:理解组件状态管理与渲染机制  反效果?《战地6》免费试玩开启后玩家数不升反降  使用J*aScript检测输入元素是否包含在特定类中  poki免费入口快捷访问 poki人气小游戏直接玩站点  c++如何使用TBB库进行任务并行_c++ Intel线程构建模块  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  qq游戏手机版下载安装_qq游戏移动端入口  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解  深入理解J*aScript中的B样条曲线与节点向量生成  不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|  今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程  J*a递归快速排序中静态变量的状态管理与陷阱  fishbowl官网免费版 fishbowl养鱼网站入口  J*aScript map 方法中处理循环元素为空数组的策略  处理Kafka消费者会话超时:深入理解消息处理语义与幂等性  DLsite中文平台入口 DLsite官网内容在线查看  黑猫投诉统一入口官网 消费者权益保护投诉平台  汽水音乐网页版使用入口_汽水音乐电脑版播放指南  写好的html代码怎么运行出来_运行写好的html代码方法【教程】  2026年CSGO开箱网站推荐 CSGO开箱平台精选  深入理解与实现最大堆的Heapify过程:常见错误与修正  妖精动漫免费平台 妖精动漫官网资源观看网址  解决Python单元测试中Mock异常方法调用计数为零的问题  PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract  学习通网页版快速入口 学习通官网网页版直接打开  大麦的“候补”是什么意思 大麦候补购票规则【详解】  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  如何在PHP中实现基于MySQL的动态分页查询  Flexbox布局实践:实现粘性导航栏与底部固定页脚  PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误  Typer应用中动态命令行参数的解析与处理  CSS实现侧边栏导航项全宽圆角悬停背景效果  excel如何生成目录 excel一键生成工作表目录超链接  J*aScript 字符串标签转换:使用正则表达式高效替换  高德地图公交到站提醒失败如何解决 高德提醒权限设置 

在线客服
服务热线

服务热线

4008988990

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

截屏,微信识别二维码

打开微信

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