一、概述
目前,.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/