1.背景
最近想学习一下NLog,之前也有一些写日志的方法,感觉NLog现在用的比较普遍,应该更成熟一些,于是乎百度了一下,查了一些别人的资料,他们写的基本实现内容大致相同,但也会有所不同之处,毕竟每个人的理解深度不同,用途也不同。按照他们的教程确实实现了功能,但总感觉差点意思,自己好像没完全吸收,于是合计直接追根溯源,去NutGet官网里查看使用教程。
2.NuGet使用 (以NLog为例)
NuGet官方网址:NuGet Gallery | Home (你可以直接百度Nuget找到官方网址)
搜索处搜索 NLog
选择搜出结果的第一个,第一个使用的人最多,点进去,里面有 "框架、依赖关系、版本信息"等(我英语也不好,全靠截屏翻译)
找到右侧 "About" 里的 "Source repository" ,源库的意思,点进去,进去的是该包在Github上的源代码。
点击 "WiKi" ,这里面就是这个包的说明书了(全是英文,截屏翻译吧)
这里面第一个连接就是基础教程,点他
点进去之后还是一堆英文,向我这样英语不好的,就截屏翻译慢慢看吧,看不明白的地方就反复截屏反复看,一边看一遍写代码,然后你就发现你好像会了。
3.NuGet 包导入
本人使用的是 Visual Studio2022,Nuget包的导入有两种方法,一种是使用命令安装,
在VS2022中,一般在视图的下方,找到 程序包管理控制台,如果找不到工具栏的“视图=>其他窗口=>程序包管理控制台”。在默认项目的右侧向下三角号中,选择要安装依赖的项目,然后在 “PM>” 后面输入:Install-Package 需要安装的包,如安装NLog就输入:Install-Package NLog 然后回车就安装啦。(此处附上微软官方说明链接)快速入门:在 Visual Studio 中安装和使用 NuGet 包(仅适用于 Windows) | Microsoft Learn
另外一种实在NuGet管理包中安装,VS2022上方工具栏里的“工具=>NuGet 包管理器(N)=>管理解决方案的 NuGet 包(N)...”,或者在项目上右键选择“管理NuGet程序包”。点击“浏览”选项卡,搜索框里输入需要安装的包,如NLog,在右侧选择你想要安装到的项目,可以选择版本,点击安装。
4 NLog使用
之前百度搜到一些教程,写的都很不错,为了自己能够使用的更明白,所以结合框架文档和别的教程一起看,来将他成为自己的东西。
先看官方文档。
说的大概意思是Nlog可以用xml来配置,通过读取Nlog.config文件来配置,配置文件属性设置为”如果较新则复制“。下面是Nlog.config文件里配置的简单示例。
好,照做,创建一个Nlog.config的文件,然后把他给的示例粘进去,属性设置好,然后后面写了用其他方法配置,先不看,后面又给了代码示例,直接copy
我创建的是.Net8 控制台应用,高级语法,在program里啥也没有,写下面这句话也不行啊,看看别人怎么写的,
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
//创建日志记录对象
Logger Logger = NLog.LogManager.GetCurrentClassLogger();
//打出日志
Logger.Debug("我打出了Nlog日志!");
人家直接这么写的,也没写成静态,那我就给去掉就好了,于是乎我的代码就这样。
NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
Logger.Info("Hello world-202404011 我新建的NLOG");
运行起来,去Debug文件里找,file.txt,哎,有打印的日志奥。OK这就基本完成了,so easy 嘛!再看看别人都怎么写的配置文件。还是刚才看的那个博客,感觉他写的很全很细。
<?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>
<!--输出目标:name名称f,xsi:type输出类型文件, fileName输出到程序根目录logs文件夹中, 以日期作为生成log文件名称, layout生成内容的格式-->
<target name="f"
xsi:type="File"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<!--日志路由规则:最低级别Debug,输出到target目标f-->
<logger name="*" minlevel="Debug" writeTo="f" />
</rules>
</nlog>
人家这个配置文件这么写的,将日志输出到Debug文件中的logs文件里,日志文件名以日期为名,将他copy下来,一试,真的好使。
总结起来两步,1 创建NLog.config文件,2 创建对象,写日志。
OK 这些已经够我用的了,以后在遇到其他需求在研究。其他博客写的都非常很好,很详细,我这可能注重怎么初步用起来,将他成为自己的东西即可,当然还有其他的很多东西,如日志配置变量含义,输出到数据库等等,可以看看其他链接来研究