博客
关于我
NLog类库使用探索——详解配置
阅读量:797 次
发布时间:2023-02-16

本文共 1728 字,大约阅读时间需要 5 分钟。

NLog配置详解

配置文件位置

在程序启动时,NLog会自动扫描以下目录以查找配置文件:

1. 单独的*.exe客户端

  • 标准程序配置文件(通常为程序名.exe.config
  • 程序目录下的程序名.exe.nlog文件
  • 程序目录下的NLog.config文件
  • NLog.dll所在目录下的NLog.dll.nlog文件(在NLog未导入GAC时)

2. ASP.NET程序

  • 标准web程序配置文件web.config
  • web.config同一目录下的web.nlog文件
  • 程序目录下的NLog.config文件
  • NLog.dll所在目录下的NLog.dll.nlog文件(在NLog未导入GAC时)
  • 如果定义了NLOG_GLOBAL_CONFIG_FILE环境变量,则该变量所指向的文件

3. 硬件设备类库(.NET Compact Framework)

  • 程序目录下的NLog.config文件
  • NLog.dll所在目录下的NLog.dll.nlog文件(在NLog未导入GAC时)

配置文件格式

NLog支持两种配置文件格式:

2.1 配置文件格式

  • 配置信息嵌入在.NET应用程序的标准*.exe.configweb.config文件中
  • 保存在独立文件中

常规配置

使用configSections进行配置:

独立文件配置

如果使用独立文件,格式如下:

2.2 配置元素

  • targets:定义日志目标
  • rules:定义日志路由规则
  • extensions:加载NLog扩展
  • include:包含外部配置文件
  • variables:定义配置变量

输出目标

3. 输出目标

日志目标是配置的核心,具体包括:

  • targets:定义日志输出目标
  • rules:定义日志路由规则

路由规则

4. 路由规则

路由规则通过<logger>元素定义,主要属性包括:

  • name:日志源/记录者的名字(可使用通配符*
  • minlevel:匹配日志的最低级别
  • maxlevel:匹配日志的最高级别
  • level:匹配单一日志级别
  • levels:匹配多个日志级别(用逗号分隔)
  • writeTo:规则匹配时,日志写入的目标(用逗号分隔)
  • final:标记当前规则为最后一个规则

例如:

上下文布局信息

5. 上下文布局信息

NLog支持布局(layouts),通过${属性}标记插入上下文信息。常见用途包括:

  • 日期和时间
  • 方法名和类名
  • 日志级别
  • 日志内容

例如:

包含配置文件

6. 包含配置文件

为了分割大型配置文件,NLog支持<include>元素:

变量

7. 变量

配置文件中可以定义变量:

自动再配置

8. 自动再配置

启用autoreload="true",NLog在配置文件修改时自动重新加载配置:

日志排错

9. 日志排错

解决日志问题时,可以通过以下方式:

  • 启用throwExceptions="true"以抛出异常
  • 配置internalLogFile将内部调试信息写入文件
  • 设置internalLogLevel决定内部日志级别
  • 配置internalLogToConsoleinternalLogToConsoleError控制内部日志输出

异步处理

10. 异步处理

启用异步处理:

缺省封装

11. 缺省封装

使用<default-wrapper>统一封装处理目标:

缺省目标参数

12. 缺省目标参数

通过<default-target-parameters>统一定义目标参数:

转载地址:http://fcjfk.baihongyu.com/

你可能感兴趣的文章
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—1.服务端启动流程一
查看>>
Netty源码—1.服务端启动流程二
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—2.Reactor线程模型二
查看>>
Netty源码—3.Reactor线程模型三
查看>>
Netty源码—3.Reactor线程模型四
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—5.Pipeline和Handler二
查看>>
Netty源码—6.ByteBuf原理一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理一
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
netty的HelloWorld演示
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>