iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.NET日志框架Nlog怎么使用
  • 472
分享到

.NET日志框架Nlog怎么使用

2023-06-29 01:06:34 472人浏览 泡泡鱼
摘要

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

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

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

快速安装

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

安装Nlog

Install-Package Nlog

安装Nlog.Config

Install-Package Nlog.Config

快速配置

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

<?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 variables  https://GitHub.com/nlog/NLog/wiki/Configuration-file#variables  -->  <variable name="myvar" value="myvalue"/>  <!--  See https://github.com/nlog/nlog/wiki/Configuration-file  for information on customizing logging rules and outputs.   -->  <targets>    <!--    add your targets here    See 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="f" fileName="${basedir}/logs/${shortdate}.log"            layout="${longdate} ${uppercase:${level}} ${message}" />    -->  </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="f" />    -->  </rules></nlog>

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

<?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" >  <targets>    <!--这个目标:最终输出文件类型, 位于根目录中得logs文件夹中, 名称以每日得时间一次生成log文件 , layout: 这个选项为生成的格式-->    <target xsi:type="File" name="f"             fileName="${basedir}/logs/${shortdate}.log"            layout="${longdate} ${uppercase:${level}} ${message}" />  </targets>  <rules>    <!--设定了一个Debug得路由, 最终指向了一个f名称得目标 -->    <logger name="*" minlevel="Debug" writeTo="f" />  </rules></nlog>

快速使用

创建Nlog实例

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

使用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当中可以进行配置), 如图所示:

.NET日志框架Nlog怎么使用

详解配置

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

.NET日志框架Nlog怎么使用

添加支持Console输出

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

<targets>    <!--<target xsi:type="File" name="f"             fileName="${basedir}/logs/${shortdate}.log"            layout="${longdate} ${uppercase:${level}} ${message}" />-->    <target xsi:type="Console" name="console"/>  </targets>  <rules>    <!--<logger name="*" minlevel="Debug" writeTo="f" />-->    <logger name="*" minlevel="Info" writeTo="console"/>  </rules>

使用Info输出

.NET日志框架Nlog怎么使用

输出至CSV文件

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

    <targets>        <target name="csv" xsi:type="File" fileName="${basedir}/file.csv">            <layout xsi:type="CSVLayout">                <column name="time" layout="${longdate}" />                <column name="message" layout="${message}" />                <column name="logger" layout="${logger}"/>                <column name="level" layout="${level}"/>            </layout>        </target>    </targets>     <rules>        <logger name="*" minlevel="Debug" writeTo="csv" />    </rules>

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

.NET日志框架Nlog怎么使用

配置日志大小

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

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

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

  • archiveEvery: 按天生成

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

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

<targets>    <target name="file" xsi:type="File"        layout="${longdate} ${logger} ${message}${exception:format=ToString}"        fileName="${basedir}/logs/logfile.txt"        maxArchiveFiles="5"        archiveAboveSize="10240"        archiveEvery="Day" />  </targets>  <rules>    <logger name="*" minlevel="Debug" writeTo="file" />  </rules>

配置日志分级

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

Trace.log

Debug.log

Info.log

Warn.log

Error.log

Fatal.log

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

<?xml version="1.0" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">     <targets>        <target name="file" xsi:type="File"            layout="${longdate} ${logger} ${message}${exception:format=ToString}"             fileName="${basedir}/${level}.log" />    </targets>     <rules>        <logger name="*" minlevel="Debug" writeTo="file" />    </rules></nlog>

配置生成规则

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

<?xml version="1.0" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">     <targets>        <target name="file" xsi:type="File"            layout="${longdate} ${logger} ${message}${exception:format=ToString}"             fileName="${basedir}/${shortdate}.log" />    </targets>     <rules>        <logger name="*" minlevel="Debug" writeTo="file" />    </rules></nlog>

日志过滤器

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

<rules>    <logger name="*" writeTo="file">        <filters>            <when condition="length('${message}') > 100" action="Ignore" />            <when condition="equals('${logger}','MyApps.SomeClass')" action="Ignore" />            <when condition="(level >= LogLevel.Debug and contains('${message}','PleaseDontLogThis')) or level==LogLevel.Warn" action="Ignore" />            <when condition="not starts-with('${message}','PleaseLogThis')" action="Ignore" />        </filters>    </logger></rules>

条件语言

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

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

注意:一些预先定义的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怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: .NET日志框架Nlog怎么使用

本文链接: https://www.lsjlt.com/news/321690.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .Net怎么使用日志框架NLog
    这篇文章主要讲解了“.Net怎么使用日志框架NLog”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net怎么使用日志框架NLog”吧!在Nuget中安装NLogNLog可以直接使用Nuge...
    99+
    2023-07-02
  • .NET日志框架Nlog怎么使用
    这篇文章主要介绍“.NET日志框架Nlog怎么使用”,在日常操作中,相信很多人在.NET日志框架Nlog怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NET日志框架Nlog怎么使用”的疑惑有所帮助!...
    99+
    2023-06-29
  • .Net使用日志框架NLog
    在Nuget中安装NLog NLog可以直接使用Nuget安装:PM > Install-Package Nlog 使用NLog NLog的使用方式基本上和其它的Log库差不多...
    99+
    2024-04-02
  • .NET日志框架Nlog使用介绍
    目录快速安装快速配置快速使用详解配置添加支持Console输出输出至CSV文件配置日志大小配置日志分级配置生成规则日志过滤器条件语言条件函数NLog是一个基于.NET平台编写的类库,...
    99+
    2024-04-02
  • .net日志框架Serilog怎么使用
    本篇内容介绍了“.net日志框架Serilog怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先安装Nuget包:Install-P...
    99+
    2023-07-02
  • .net项目使用日志框架log4net
    目录一、log4net简介二、log4net结构1、Logger:2、APPender:3、Filter:4、Layout:5、Object Render三、Log4net参数:四、...
    99+
    2024-04-02
  • 怎么为WPF框架Prism注册Nlog日志服务
    这篇文章主要为大家展示了“怎么为WPF框架Prism注册Nlog日志服务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么为WPF框架Prism注册Nlog日志服务”这篇文章吧。无论是Nlog还...
    99+
    2023-06-29
  • 为WPF框架Prism注册Nlog日志服务
    无论是Nlog还是Serilog, 它们都提供了如何快速在各类应用程序当中的快速使用方法。 尽管,你现在无论是在WPF或者ASP.NET Core当中, 都可以使用ServiceCo...
    99+
    2024-04-02
  • Nlog日志框架集成Seq扩展包
    什么是Seq? 正如我们使用不同的日志框架来为我们的应用程序收集各类日志信息, 这些信息可以有效的帮助我们快速诊断应用程序中发生的各类问题, 尽管如此,对于常见的日志框架而言, 它们...
    99+
    2024-04-02
  • .net新兴日志框架Serilog简介
    Serilog是.net下的新兴的日志框架,本文这里简单的介绍一下它的用法。 首先安装Nuget包: Install-Package Serilog Install-Package ...
    99+
    2024-04-02
  • ASP.NETCore使用NLog记录日志
    目录一、前言二、使用NLog1、引入NLog2、添加配置文件3、在控制器中使用4、读取指定位置的配置文件5、封装一、前言 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日...
    99+
    2024-04-02
  • ASP.NETCore使用NLog输出日志记录
    ASP.NET Core 中的日志记录 https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/logging/view=...
    99+
    2024-04-02
  • Spring5新功能日志框架Log4j2怎么使用
    这篇文章主要讲解了“Spring5新功能日志框架Log4j2怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring5新功能日志框架Log4j2怎么使用”吧!Spring5整合Lo...
    99+
    2023-06-30
  • .Net Core日志记录之第三方框架Serilog
    一、前言 对内置日志系统的整体实现进行了介绍之后,可以通过使用内置记录器来实现日志的输出路径。而在实际项目开发中,使用第三方日志框架(如: Log4Net、NLog、Log...
    99+
    2024-04-02
  • ASP.NET Core如何使用NLog记录日志
    这篇文章主要介绍了ASP.NET Core如何使用NLog记录日志,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、前言在所有的应用程序中,日志功能是不可或缺的模块...
    99+
    2023-06-29
  • Laravel日志和Go框架日志:哪个更容易使用?
    随着Web应用程序的不断发展,日志记录已成为一项必不可少的任务。对于开发人员来说,日志记录是一种追踪和调试应用程序的重要方式。在本文中,我们将比较Laravel和Go框架的日志记录功能,以便开发人员可以更好地了解哪种框架更适合他们的需求。...
    99+
    2023-06-04
    框架 日志 laravel
  • .Net Core 使用NLog记录日志到文件和数据库的操作方法
    NLog 记录日志是微软官方推荐使用。 接下来,通过配置日志记录到文件和Sql Server数据库。 第一步:首先添加包NLog.Config (可通过微软添加包命令Install-...
    99+
    2024-04-02
  • springboot logback日志框架怎么配置
    本篇内容介绍了“springboot logback日志框架怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!logback既可以通过a...
    99+
    2023-06-30
  • .NET Framework 4.0框架怎么用
    这篇文章主要为大家展示了“.NET Framework 4.0框架怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“.NET Framework 4.0框架怎么用”这篇文章吧。在.NET Fr...
    99+
    2023-06-17
  • 如何在Python 中使用loguru日志框架
    如何在Python 中使用loguru日志框架?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装pip install loguru输出日志...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作