NLog简用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SevenGirl2017/article/details/86664315

定义

NLog是一个简单灵活的.NET日志记录类库,它可以使用任何一种.NET语言进行诊断信息的输出。

使用

安装

打开NuGet管理包
在这里插入图片描述
搜索NLog,进行NLog、NLog.Config的下载在这里插入图片描述
项目中添加NLog.config和NLog.xsd。显示效果如下
在这里插入图片描述

配置

以U层为例,双击U层下的NLog.config进行配置

<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">
      
      <!--定义变量  projectName 项目名称    logDirctory 文件路径-->
	  <variable name="projectName" value="NCRE"/>
	  <variable name="logDirectory" value="D:/项目-一级/Demo/NLog/${projectName}/${shortdate}"/>
	  
  <targets>
    <target xsi:type="File" name="logfiles" fileName="${logDirectory}/${shortdate}.log" 
            layout="${longdate} ${level} ${message} ${stacktrace} ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}${newline}"/>
  </targets>
  
  <rules>
	  <logger name="*" minlevel="Trace" writeTo="logfiles" />
  </rules>
</nlog>

调用

添加调用不影响主程序的运行,只要在需要的位置进行对应的Logger调用即可。

using NLog;
static class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();
        
		static void Main()
		        {
		        	// logger.Log(LogLevel.Trace, message);//形式
		        	// logger.Trace(message);
					  logger.Log(LogLevel.Trace, "nlog test Trace");//举例
					  logger.Trace("TTTTTTTTTT");
				}
	}

显示效果

在这里插入图片描述

标签说明

nlog

  • autoReload 修改配置文件后是否允许自动加载无须重启程序
  • throwExceptions 内部日志系统抛出异常
  • internalLogLevel 可选Trace|Debug|Info|Warn|Error|Fatal决定内部日志的级别 Off表示关闭
  • internalLogFile 把内部的调试和异常信息都写入指定文件里

targets 定义输出模板

  • name:输出名称
  • type:输出类型
    • Console 输出到控制台
    • Debugger 输出到
    • File 输出到文件
    • Mail 输出为邮件发送
    • Network 输出到网络地址
    • Database 输出到数据库
  • fileName=" l o g D i r e c t o r y / {logDirectory}/ {shortdate}.log":表示输出到指定路径下的以短日期命名的log中
  • layout="…":输出文件中错误的显示格式
    • ${logDirectory}:为上述定义的路径
    • ${longdate}:输出长日期 yyyy-MM-dd HH:mm:ss.ffff(例:2013-01-31 14:49:21.2120)
    • ${shortdate}:输出短日期
    • ${level}:错误等级(由低到高为Trace,Debug,Info,Warn,Error,Fatal)
    • ${newline}:输出 新的一行
    • ${stacktrace}:输出 堆栈信息
    • ${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True}:输出 命名空间.类名.方法名(文件路径:行号)
    • ${message}:输出的具体信息

rules

  • name - 记录者的名字 (允许使用通配符*,代表记录所有信息)
  • minlevel - 匹配日志范围的最低级别
    • minlevel=“Trace”:记录的最低错误级别为Trace
  • maxlevel - 匹配日志范围的最高级别
    • Trace - 非常详细的日志,包含最详尽的信息,例如协议的有效载荷. 该日志等级通常仅在开发过程中被使用;
    • Debug - 调试信息,详尽信息次于 Trace ,在生产环境中通常不启用;
    • Info - 信息消息, 通常在生产环境中通常启用;
    • Warn - 警告信息,通常用于非关键问题,这些问题可以恢复,或者是暂时的故障;
    • Error - 错误信息 - 多数情况下记录Exceptions(异常)信息;
    • Fatal - 非常严重的错误!
  • level - 匹配的单一日志级别
  • levels - 匹配的一系列日志级别,由逗号分隔。
  • writeTo - 规则匹配时日志应该被写入的一系列目标,由逗号分隔。
    • writeTo=“logfiles”:日志写入logfiles的target中

猜你喜欢

转载自blog.csdn.net/SevenGirl2017/article/details/86664315