NLog简单使用教程

NLog介绍

NLog是一个记录日志的模块,简单配置就能使用。

如何获得

在visual studio里面的NuGet程序包管理器里面直接搜NLog 和 NLog.config添加上就可以了。这里稍微说下,NLog是模块主体,NLog.config是一个配置文件,如果你对NLog足够了解可以自己配置文件。

配置文件

这是一个配置文件例子

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"autoReload="true"throwExceptions="false"internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"><!-- optional, add some variableshttps://github.com/nlog/NLog/wiki/Configuration-file#variables--><variable name="myvar" value="myvalue"/><!--See https://github.com/nlog/nlog/wiki/Configuration-filefor information on customizing logging rules and outputs.--><targets><!--add your targets hereSee https://github.com/nlog/NLog/wiki/Targets for possible targets.See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.--><!--Write events to a file with the date in the filename.--><target xsi:type="File" name="File" fileName="${basedir}/logs/${shortdate}.log"layout="${longdate} ${uppercase:${level}} ${message}" /><target xsi:type="ColoredConsole"name="ColoredConsole"layout="${longdate}|${level:uppercase=true}|${logger}|${message}"></target></targets><rules><!-- add your logging rules here --><!--Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"--><logger name="*" minlevel="Debug" writeTo="File,ColoredConsole" /></rules>
</nlog>

配置文件分为 名空间 变量 日志输出目标 和 日志规则四个部分,我们慢点说。

名空间

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"autoReload="true"throwExceptions="false"internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

这部分代码定义的是这个xml文件的内容。大意是这是一个符合xml规则的一个xml文件。望文知意。

变量

<!-- optional, add some variableshttps://github.com/nlog/NLog/wiki/Configuration-file#variables--><variable name="myvar" value="myvalue"/>

变量就是自己定义的一些变量,很好理解,以后可以直接${变量名字}在下面引用就可以了。变量需要先声明在使用。

日志输出目标

<!--See https://github.com/nlog/nlog/wiki/Configuration-filefor information on customizing logging rules and outputs.--><targets><!--add your targets hereSee https://github.com/nlog/NLog/wiki/Targets for possible targets.See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.--><!--Write events to a file with the date in the filename.--><target xsi:type="File" name="File" fileName="${basedir}/logs/${shortdate}.log"layout="${longdate} ${uppercase:${level}} ${message}" /><target xsi:type="ColoredConsole"name="ColoredConsole"layout="${longdate}|${level:uppercase=true}|${logger}|${message}"></target></targets>

日志输出目标就是说日志要输出到什么地方,这里可以指定很多地方,控制台,文件,数据库,通过邮件发送等,也可以自定义输出目标,不过需要用到NLog的扩展去自己实现,我这里的代码是添加了文件和一个带有颜色的控制台输出目标。
这里有个布局Layout可以说下,就是日志的输出格式,有参考链接,可以自己定制需要的输出格式。

日志规则

<rules><!-- add your logging rules here --><!--Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"-->
<logger name="*" minlevel="Debug" writeTo="File,ColoredConsole" />
<logger name="MMM" minlevel="Debug" writeTo="File,ColoredConsole" /></rules>

程序中会定义一些日志实例-logger,日志规则定义日志实例输出到那些日志目标,这段代码的意思是所有的日志实例输出都会输出到颜色控制台和文件,这样在程序运行时和运行后都可以看到。

代码

LogManager.GetCurrentClassLogger().Log(LogLevel.Error, "XXXX");
LogManager.GetLogger("MMM ").Log(LogLevel.Error, "xxxxxxxxxxxxxxxx");

每一个调用类可以自动生成一个日志实例,也可以获取设置的日志实例来记录日志

总结

写这个的目的是为将来如果用NLOG直接拷贝配置代码就可以直接使用了。

NLog简单使用教程相关推荐

  1. vim简单使用教程【转】

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...

  2. java map set_java中Map、Set、List的简单使用教程(快速入门)

    Map.Set.List List的常用方法 1.创建 List list = new ArrayList<>(); List list = new LinkedList<>( ...

  3. 【转】正则表达式简介及在C++11中的简单使用教程

    [转]正则表达式简介及在C++11中的简单使用教程 正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达 ...

  4. PHP在WPS中的应用,PHP+Laravel的简单应用教程【ajax的使用】,wps的使用教程

    PHP+Laravel的简单应用教程[ajax的使用]PHP·拉弗尔的简单应用教程[阿贾克斯的使用],下面由Laravel框架教程栏目给大家介绍PHP Laravel的简单应用教程[阿贾克斯的使用], ...

  5. 史上最简单MySQL教程详解(进阶篇)之存储过程(一)

    史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...

  6. 史上最简单MySQL教程详解(进阶篇)之存储引擎介绍及默认引擎设置

    什么是存储引擎? MySQL存储引擎种类 MyISAM 引擎 InnoDB引擎 存储引擎操作 查看存储引擎 存储引擎的变更 修改默认引擎 什么是存储引擎? 与其他数据库例如Oracle 和SQL Se ...

  7. IDEA简单配置教程

    IDEA简单配置教程 --做好前期配置工作,后期少走弯路. 创建模块(Module) 设置(Settings) 设置主题 窗体及菜单字体及大小 设置编辑区主题 通过插件(plugins)更换主题 设置 ...

  8. kindle的xray怎么用_Xray简单使用教程

    Xray简单使用教程 0X00下载 xray 为单文件二进制文件,无依赖,也无需安装,下载后直接使用. 下载地址为: 注意: 不要直接 clone 仓库,xray 并不开源,仓库内不含源代码,直接下载 ...

  9. navicat fo mysql 教程_Navicat For MySQL的简单使用教程

    1.前提是必须先安装好MySQL数据库(Mac下安装MySQL数据库见前一篇) 2.安装Navicat 3.点击navicate左上角:连接->MySQL->先测链接下,如果提示连接成功, ...

最新文章

  1. 硅谷产品实战-总结:20、想要增长,你的团队需要高效的工作流
  2. 一个合格程序员该做的事情
  3. 英特尔提出了一个数学公式,以此证明自动驾驶汽车的安全性
  4. 在MATLAB中使用tensorflow
  5. delphi控件切图界面闪烁_小程序设计,不得不说的7个坑 (附资源:新版小程序 UI 控件,Sketch 版)...
  6. oracle 添加默认值列,Oracle 11g增加列,并带默认值的新特性
  7. JAVA的多态的优劣,向上转型,向下转型什么意思?
  8. java语言的技术可行性_可行性分析的主要内容( )。
  9. java后台保存base64图片数据
  10. Oracle 向上递归、向下递归
  11. 设计趋势:网页之粗粝设计风格
  12. anaconda的使用
  13. 简单的UDP监听需要打开w网路岗才能接收到数据的原因和解决办法
  14. 如何将图片批量压缩大小?怎样一次性压缩多张图片?
  15. 【容器化部署简介】 基于腾讯云TKE: kubernetes(k8s), github actions, devops
  16. 干货丨面向新基建,安全厂商都准备了哪些前瞻性的“武器”?
  17. 百度网络质量监控实战:猎鹰一战成名(下)
  18. 公司电子邮箱可以定制邮箱地址吗?
  19. Jupyter 福音: 官方可视化 Debug 工具!
  20. 从键盘输入直接三角形的两条直接边的长度,求斜边的长度和三角形的面积,计算结果保留两位小数

热门文章

  1. MaxCompute(DataIDE)数据核查
  2. 用Excel绘制皮尔逊三型曲线
  3. php 获取返回data,取得php值
  4. 使用Mac技巧:如何解决Mac大写锁定键失灵?
  5. MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据
  6. Cropper.js实现对上传图片的剪裁
  7. 【Linux】Linux系统如何修改/设置服务器ip地址
  8. python中matlabplot库学习
  9. 巧用PropertyInfo简化和改善代码
  10. MySQL BETWEEN 用法