一、概述
目前,.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 () 方法进行配置:
该方法应该在应用程序的启动初期调用,且之后不再调用,建议在程序入口的静态方法中调用。
2、使用
使用 “简易日志 (SimpleLogger)” 记录日志是很容易的,只需调用 LogHelper.Write () 方法即可:
可以看到最少只需传递一个日志内容参数即可。另外还支持是否空行,以及记录调用方信息。
如果之前程序中都是 Console.Write() 这样的,您也无需批量替换,LogHelper 中附带了将控制台信息重定向到日志的辅助类(ConsoleWriter)供您使用:
三、特色
总体来说,” 简易日志 (SimpleLogger)” 拥有如下特色:
(1) 免配置使用;
(2) 便捷配置:指定路径、前缀、单条最大长度、保留天数;
(3) 按日期分文件、自动记录时间和调用信息、连续重复内容仅计数。
着重说一下 “连续重复内容仅计数” 特性,意思就是如果有连续的重复内容,则 “简易日志 (SimpleLogger)” 不会直接输出多条重复内容,仅输出第一条,后续的内容只记录时间和重复到第几次,并且不换行,直到碰到下一条不同的内容为止,效果见下一节。
四、效果展示
不同程序配置到不同目录:
日志文件按照日期分开:
自动记录时间和调用信息:
清理指定天数之前的日志(需配置,默认不清理):
单条最大长度限制:
连续重复内容仅计数(156、157 行):
五、NuGet 包
https://www.nuget.org/packages/SimpleLogger_dlgcy/
支持 .NET Framework 和 .NET Standard(包括 .NET Core),NuGet 包管理器中直接搜索 “简易日志” 即可安装使用:
.NET Framework 项目安装时如果提示源中找不到,可以编辑项目文件,添加上
<PackageReference Include=”SimpleLogger_dlgcy” Version=”1.0.7″ />
祝大家使用愉快!
同步首发:
http://dlgcy.com/simple-logger/
来源:oschina
链接:https://my.oschina.net/u/4305979/blog/4340810