博客
关于我
NLog类库使用探索——详解配置
阅读量:793 次
发布时间: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/

你可能感兴趣的文章
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_插入时如果目标表中已存在该数据则自动改为更新数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0058
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>