『简易日志』NuGet 日志包 SimpleLogger

『简易日志』NuGet 日志包 SimpleLogger

简易日志NuGet 日志SimpleLogger

独立观察员 2020年7月7日

一、概述

目前,.NET 框架下,主流的日志组件大致就是 Nlog 和 Log4Net 了,功能比较强大,但总感觉太重了,学习他们的配置规则也是个门槛。当然还有这两者的各种封装变种,以及似乎在 .NET Core 中比较流行的微软官方的 Microsoft.Extensions.Logging,具体没怎么使用过,不好评价。(说到变种,本人曾经也改造过一个 log4net 的版本:https://gitee.com/dlgcy/YTLog ,感兴趣的可以试试)。

其实,对于个人项目或者较小的项目,我们实际只需要将日志内容写入文本文件即可。本人制作的这个 “简易日志(SimpleLogger)” 包里面包含的代码逻辑,最开始也就是简单地写入文本,后来经过实际使用的演化,做了各种优化,添加了一些实用的特性,感觉用着还不错。正所谓独乐乐不如众乐乐,于是将其打包上传到微软的包管理库 NuGet 中,大家可以使用试试,相互交流。核心代码已托管在码云了:https://gitee.com/dlgcy/dotnetcodes/blob/dlgcy/DotNet.Utilities/日志/LogHelper.cs

 

二、使用方法

1、配置(可选)

配置不是必须的,只有当对于目录、前缀、单条最大长度、保留天数这几项有定制需求时才需要调用 LogHelper.Config() 方法进行配置:

『简易日志』NuGet 日志包 SimpleLogger插图

 

该方法应该在应用程序的启动初期调用,且之后不再调用,建议在程序入口的静态方法中调用。

 

2、使用

使用 “简易日志(SimpleLogger)” 记录日志是很容易的,只需调用 LogHelper.Write() 方法即可:

『简易日志』NuGet 日志包 SimpleLogger插图(1)

 

可以看到最少只需传递一个日志内容参数即可。另外还支持是否空行,以及记录调用方信息。

 

如果之前程序中都是 Console.Write() 这样的,您也无需批量替换,LogHelper 中附带了将控制台信息重定向到日志的辅助类(ConsoleWriter)供您使用:

『简易日志』NuGet 日志包 SimpleLogger插图(2)

 

三、特色

总体来说,”简易日志(SimpleLogger)” 拥有如下特色:

(1) 免配置使用;

(2) 便捷配置:指定路径、前缀、单条最大长度、保留天数;

(3) 按日期分文件、自动记录时间和调用信息、连续重复内容仅计数。

 

着重说一下 “连续重复内容仅计数” 特性,意思就是如果有连续的重复内容,则 “简易日志(SimpleLogger)” 不会直接输出多条重复内容,仅输出第一条,后续的内容只记录时间和重复到第几次,并且不换行,直到碰到下一条不同的内容为止,效果见下一节。

 

四、效果展示

不同程序配置到不同目录:

『简易日志』NuGet 日志包 SimpleLogger插图(3)

 

日志文件按照日期分开:

『简易日志』NuGet 日志包 SimpleLogger插图(4)

 

自动记录时间和调用信息:

『简易日志』NuGet 日志包 SimpleLogger插图(5)

 

清理指定天数之前的日志(需配置,默认不清理):

『简易日志』NuGet 日志包 SimpleLogger插图(6)

 

单条最大长度限制:

『简易日志』NuGet 日志包 SimpleLogger插图(7)

 

连续重复内容仅计数(156、157 行):

『简易日志』NuGet 日志包 SimpleLogger插图(8)

 

五、NuGet 包

https://www.nuget.org/packages/SimpleLogger_dlgcy/

『简易日志』NuGet 日志包 SimpleLogger插图(9)

 

支持 .NET Framework 和 .NET Standard(包括 .NET Core),NuGet 包管理器中直接搜索 “简易日志” 即可安装使用:

『简易日志』NuGet 日志包 SimpleLogger插图(10)

 

.NET Framework 项目安装时如果提示源中找不到,可以编辑项目文件,添加上

<PackageReference Include=”SimpleLogger_dlgcy” Version=”1.0.7″ />

 

祝大家使用愉快!

0 0 评分
文章评分
订阅
提醒
guest
0 评论
行内反馈
查看所有评论
0
若有所思?请评论!x
()
x