『簡易日誌』NuGet 日誌包 SimpleLogger

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

本人製作的這個 “簡易日誌 (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/

微信訂閱號

 


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

更多相關文章
  • 解決辦法: 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客戶端開發的同事提供不定時的消息推送,比如商城購買道具後服務端將道具信息推送給客戶端。 本篇文章簡化理解,用“相關部門開展活動,向全市人民徵集社會服務改善意見”為例子。但核心想法一致:單向推送(指這個需求上只需要單向)。所以這個功能並不是聊天 ...
一周排行
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...