千家信息网

.NET日志框架Nlog怎么使用

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍".NET日志框架Nlog怎么使用",在日常操作中,相信很多人在.NET日志框架Nlog怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答".NET日
千家信息网最后更新 2024年11月24日.NET日志框架Nlog怎么使用

这篇文章主要介绍".NET日志框架Nlog怎么使用",在日常操作中,相信很多人在.NET日志框架Nlog怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答".NET日志框架Nlog怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

NLog是一个简单灵活的.NET日志记录类库。通过使用NLog,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表现样式之后发送到一个或多个输出目标(target)中。

快速安装

在软件包管理器控制台中使用GUI或以下命令:

1.安装Nlog

Install-Package Nlog

2.安装Nlog.Config

Install-Package Nlog.Config

快速配置

打开目录中得Nlog.Config文件, 可以注意到, XML文件中有详细说明, rules区允许添加用户自定义得路由规则, targets则用于配置一些输出目标, 如下:

                              

我们暂时把注释的说明代码移除, 还原到最简洁得XML格式, 如下:

                        

快速使用

1.创建Nlog实例

private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();

2.使用Debug进行输出

由于在Nlog.Config当中, 我们已经添加了Debug的最终输出目标, 所以我们尝试输出Debug的内容:

 class Program    {        private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();        static void Main(string[] args)        {            Logger.Debug("我出现了意外!");            Console.ReadKey();        }    }

运行完成之后,可以在当前的输出目录中, 发生已经生成了一个logs的文件夹,并且生成了当前计算器日期的log文件 (这个规则在Nolog.Config当中可以进行配置), 如图所示:

详解配置

关于rules中, 我们可以添加多种路由规则, 并且指向多个目标, 如下所示:

添加支持Console输出

1.在rules中添加Info, writeTo指向一个Console的目标

                      

2.使用Info输出

输出至CSV文件

1.在rules中添加一个新的路由, 以支持csv文件, 并且添加一个目标, 输出至csv文件, column可以用于指定每列生成的数据内容格式

                                                                                                                                 

最终调用Debug("xxxx"), 输出的效果如下:

配置日志大小

Nlog允许用户配置单个文件大小, 放置在内容过长效率过慢,配置了大小之后, Nlog会自动创建一个新的文件副本,插入新的日志输出。

  • maxArchiveFiles: 允许生成的副本文件最大数量

  • archiveAboveSize: 允许单个文件得最大容量

  • archiveEvery: 按天生成

  • layout: 当前得内容布局格式

  • fileName: 包含完整得生成文件得路径和文件名

              

配置日志分级

单个文件目标可用于一次写入多个文件。以下配置将导致每个日志级别的日志条目被写入一个单独的文件,支持以下格式:

Trace.log

Debug.log

Info.log

Warn.log

Error.log

Fatal.log

只需要在Nlog.Config中配置以下内容即可:

                                  

配置生成规则

只需要将filename中编写得固定名称修改程 ${shortdate} 即可

                                  

日志过滤器

可以在路由当中, 为每个路由配置自定义得日志过滤器fliter, 如下所示, 演示了使用各种表达式来配置过滤器:

                                                                        

条件语言

过滤器表达式以特殊的迷你语言编写。该语言包括:

关系运算符:==,!=,<,<=,>=和>

注意:一些预先定义的XML字符可能需要转义。例如,如果尝试使用'<'字符,则XML解析器会将其解释为开始标记,这会导致配置文件中的错误。而是<在这种情况下使用转义版本的<<(())。

布尔运算符:and,or,not

始终被视为布局的字符串文字- ${somerenderer}

布尔文字- true和false

数值文字-例如12345(整数文字)和12345.678(浮点文字)

日志级别文字- LogLevel.Trace,LogLevel.Debug,...LogLevel.Fatal

预定义的关键字来访问最常用的日志事件属性- level,message和logger

花括号-一起覆盖默认优先级和分组表达式

条件函数-执行string和object测试

单引号应与另一个单引号转义。

条件函数

以下条件功能可用:

contains(s1,s2)确定第二个字符串是否是第一个的子字符串。返回:true当第二个字符串是第一个字符串的子字符串时,false否则返回。

ends-with(s1,s2)确定第二个字符串是否是第一个字符串的后缀。返回:true当第二个字符串是第一个字符串的前缀时,false否则返回。

equals(o1,o2)比较两个对象是否相等。返回:true当两个对象相等时,false否则返回。

length(s) 返回字符串的长度。

starts-with(s1,s2)确定第二个字符串是否是第一个字符串的前缀。返回:true当第二个字符串是第一个字符串的前缀时,false否则返回。

regex-matches(input, pattern, options)在NLog 4.5中引入。指示正则表达式是否pattern在指定的input字符串中找到匹配项。options是一个可选的逗号分隔的RegexOptions枚举值列表。

返回:true当在输入字符串中找到匹配项时,false否则返回。

范例:regex-matches('${message}', '^foo$', 'ignorecase,singleline')

到此,关于".NET日志框架Nlog怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0