Nlog 的使用

本来是准备用Log4Net,之前都用它。后面发现了Nlog发现更有活力,就想试试,结果一用感觉非常好。

通过包管理器直接安装:

 

你只要将配置文件 NLog.config 放在和exe同一个文件夹,那么NLog会自动加载,非常省心!

配置语法也更容易理解。

我的配置:


    
		
		
		
		
		
		
    
	
    
		
		
		
    

target是输出的目标,可以是控制台,文件,数据库,邮件,等等。

rules 指点哪个级别的日志输出到哪个target。

然后再类中就可以直接使用:

NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

创建一个logger ,然后直接logger.Info($"程序退出~~!");  就可以打印信息了。

关于,logger的封装问题,目前是感觉没必要封装,封装之后,打印的类名和行数,就是封装后的类的类名和此类的行数。不能反映真实的情况。

格式化的输出主要是靠target中的layout属性,下面是layout属性可以用的属性列表


${appdomain}

当前应用程序域l

${assembly-version}

应用程序

${basedir}

应用程序域的基本目录。

${callsite}

(类名称、方法名称和相关信息的源信息)。

${counter}

数值

${date}

当前日期和时间。

${environment}

环境变量

${exception}

exception信息

${guid}

GUID

${identity}

线程标识信息

${level}

级别。

${log4jxmlevent}

XML事件描述

${logger}

记录器的名字

${longdate}

日期和时间的格式分类yyyy-MM-dd HH:mm:ss.ffff。

${machinename}

名称

${message}

消息

${newline}

文字换行

${processid}

当前进程标识符

${processinfo}

运行信息

${processname}

当前进程的名称。

${processtime}

该时间过程中格式HH:MM:ss.mmm。

${shortdate}

短时间 格式YYYY-MM-DD。

${threadid}

当前线程的标识符。

${threadname}

当前线程。

${ticks}

当前日期和时间。

${time}

24小时格式HH:MM:ss.mmm。


解释一下:${callsite} 的具体用法

${callsite:className=True:fileName=True:includeSourcePath=True:methodName=True} 

那么就会这么显示:

CSharpTest.MainWindow.Button_Click(E:\mypro\CSharpTest\CSharpTest\MainWindow.xaml.cs:40)

格式化输出就是这个样子的:

 

你可能感兴趣的:(工具使用,c#)