『簡易日誌』NuGet 日誌包 SimpleLogger

来源:https://www.cnblogs.com/weiliuhong/archive/2020/07/07/simple-logger.html
-Advertisement-
Play Games

本人製作的這個 “簡易日誌 (SimpleLogger)” 包裡面包含的代碼邏輯,最開始也就是簡單地寫入文本,後來經過實際使用的演化,做了各種優化,添加了一些實用的特性,感覺用著還不錯。正所謂獨樂樂不如眾樂樂,於是將其打包上傳到微軟的包管理庫 NuGet 中,大家可以使用試試,相互交流。 ...


簡易日誌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 () 方法進行配置:

 

該方法應該在應用程式的啟動初期調用,且之後不再調用,建議在程式入口的靜態方法中調用。

 

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/

微信訂閱號

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 解決辦法: https://tunatore.wordpress.com/2015/06/15/org-jboss-tools-vpe-xulrunner-xulrunnerbundlenotfoundexception-bundle-org-mozilla-xulrunner-win32-win3 ...
  • **前言** Topological sort 又稱 Topological order,這個名字有點迷惑性,因為拓撲排序並不是一個純粹的排序演算法,它只是針對某一類圖,找到一個可以執行的線性順序。 這個演算法聽起來高大上,如今的面試也很愛考,比如當時我在面我司時有整整一輪是基於拓撲排序的設計。 但它其 ...
  • 前言 面試總是會被問到有沒有用過分散式鎖、redis 鎖,大部分讀者平時很少接觸到,所以只能很無奈的回答 “沒有”。本文通過 Spring Boot 整合 redisson 來實現分散式鎖,並結合 demo 測試結果。 首先看下大佬總結的圖 正文 添加依賴 <!--redis--> <depende ...
  • 本文屬於OData系列 目錄 武裝你的WEBAPI-OData入門 武裝你的WEBAPI-OData便捷查詢 武裝你的WEBAPI-OData分頁查詢 武裝你的WEBAPI-OData資源更新Delta 武裝你的WEBAPI-OData之EDM 武裝你的WEBAPI-OData常見問題 武裝你的WE ...
  • abp版本5.9 概述 數據遷移無非就是兩件事情,1、創建資料庫,並根據實體創建對應的表;2、添加一些初始數據 abp的數據遷移也是完成這兩件事,比較特殊的是它是多租戶saas系統,而且支持不同的租戶有獨立的資料庫。所以abp中的遷移要先遷移戶主Host,再遷移租戶Tenant的資料庫 它的遷移定義 ...
  • 前言 上一篇文章主要介紹了IL的概念以及基礎的示例代碼,在這一篇文章中我們將通過對象調用看IL。 創建對象與調用方法 class Program { static void Main(string[] args) { var obj = new MyClass(); Console.WriteLin ...
  • 找到項目中ServiceStack.Text.dll文件的版本,比如我的版本是5.0.0,到GitHub上下載對應的源碼(https://github.com/ServiceStack/ServiceStack.Text/tags) 打開解決方案,重新生成ServiceStack.Text項目,如果 ...
  • 1.需求示意圖 2.需求描述 原本是為了給做unity3d客戶端開發的同事提供不定時的消息推送,比如商城購買道具後服務端將道具信息推送給客戶端。 本篇文章簡化理解,用“相關部門開展活動,向全市人民徵集社會服務改善意見”為例子。但核心想法一致:單向推送(指這個需求上只需要單向)。所以這個功能並不是聊天 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...