C#中使用NLog庫進行日志記錄的流程詳解
引言
NLog 是 .NET 的日志記錄框架。具有豐富的日志路由和管理能力,極大地幫助您生成和管理日志。NLog 是一個庫,可以輕松地同時記錄和管理多個不同區(qū)域(例如控制臺、數(shù)據(jù)庫或文本文件)中的數(shù)據(jù)。我們可以按如下方式列出 NLog 的功能:
擴展:
在日志記錄時,您可能希望將日志記錄保存在不同的位置,例如數(shù)據(jù)庫、文本文件或控制臺。NLog 允許您通過單個配置文件執(zhí)行這些操作。
此外,還有一些解決方案適用于緩沖、負載平衡、異步寫入和許多其他場景。
易于配置:
配置文件非常簡單。您可以通過單個配置文件控制和管理整個過程。
可模板:
日志記錄時最重要的步驟之一是為遇到的不同方案創(chuàng)建不同的模板。例如,如果您想為要記錄的文件指定不同的名稱,NLog 庫將輕松為您提供此名稱。
NLog 在最簡單的小型應用程序以及大型和復雜的項目中非常有用。由于其豐富的配置功能,您可以在所有項目中使用它。
如何在 .NET 項目中使用 Nlog 庫?
1)安裝依賴:
在開始處理應用程序之前,必須安裝一些依賴項包。
打開 NuGet 包管理器:
Visual Studio 提供了多種使用 NuGet 包管理器的方法。
要做的第一件事是打開包管理器控制臺??梢允褂?*“工具”>“NuGet 包管理器”>“包管理器控制臺**”執(zhí)行此操作,如圖 1–1–1 所示。
在打開的控制臺中,在打開的控制臺中運行圖 1–1–2 (Install-Package NLog.Extensions.Logging) 中的命令。
2)創(chuàng)建記錄器:
對于我們的項目,我們將使用最簡單的方法在 NLog 的 LogManager 類中創(chuàng)建一個記錄器。它提供了 GetCurrentClassLogger() 方法,用于獲取每個類的唯一記錄器。與全局配置的記錄器不同,每個類的記錄器可幫助您輕松捕獲日志消息的來源。
我們創(chuàng)建的記錄器將使用 NLog 的默認日志級別系統(tǒng)。日志系統(tǒng)由以下 6 個級別組成:
致命:用于報告強制關(guān)閉應用程序的錯誤。
錯誤:用于記錄程序執(zhí)行期間發(fā)生的嚴重問題。
警告:用于報告非關(guān)鍵異常行為。
信息:用于向系統(tǒng)管理員和最終用戶突出顯示應用程序進度的信息性消息。
調(diào)試:用于調(diào)試包含有關(guān)應用程序處理的擴展信息的消息。
跟蹤:用于跟蹤代碼。
讓我們看看如何在代碼中使用 logger。
Program.cs文件應如圖 1–2–1 中的代碼所示。
3)配置記錄器:
NLog 具有豐富的配置能力,提供了兩種配置記錄器的方法;以編程方式或通過配置文件。您可以在 Nlog 配置選項文檔中找到有關(guān)它們的詳細信息。
在本文中,我們將使用 nlog.config 文件配置記錄器。
首先,我們需要做的是在項目的根目錄下創(chuàng)建一個 nlog.config 文件。您可以通過按 CTRL + SHIFT + A,選擇 XML 文件類型并在打開的窗口中輸入名稱 nlog.config 來完成,如圖 1–3–1 所示。
然后,我們必須將文件的“復制到輸出目錄”屬性設置為“始終復制”,如圖 1-3-2 所示??梢酝ㄟ^右鍵單擊解決方案資源管理器中的文件并選擇“屬性”選項來完成此操作。
我們的配置文件必須如圖 1-3-3 所示。在圖 1-3-3 中,我們的配置由兩部分組成:設置日志記錄目標和設置日志記錄規(guī)則。
我們決定為項目添加 3 個日志記錄目標:控制臺和 2 個日志文件。在配置文件中,它們中的每一個都將由一個單獨的 XML 元素表示。讓我們在 nlog.config 文件中編寫目標。
然后,我們可以創(chuàng)建規(guī)則。在 NLog 中,每個規(guī)則都可以應用于多個記錄器和目標,并且必須編寫為單獨的 XML 元素。
第一條規(guī)則強制所有記錄器將具有調(diào)試日志和更高嚴重性日志的日志寫入名為 all_logs_file 的目標。
第二條規(guī)則強制所有記錄器將警告和更高嚴重性的日志寫入名為 important_logs_file 的目標。
第三條規(guī)則強制所有記錄器將應用程序生成的所有日志寫入控制臺。
4)為項目場景創(chuàng)建類:
我們將使用 2 個額外的類來展示如何使用我們的日志記錄配置。
為類創(chuàng)建一個新文件,如圖 1–4–1 所示;可以通過右鍵單擊項目“添加”>“新項”在打開的窗口中選擇 C# 類,也可以按 CTRL + SHIFT + A 添加類。
第一個文件將包含一個 Person 類。您可以在圖 1–4–2 中看到代碼片段。
第二個文件將包含 Product 類。您可以在圖 1–4–3 中看到代碼片段。
我們可以將對象分解為具有“@”解構(gòu)運算符的值的屬性,如圖 1-4-2 和圖 1-4-3 所示。
5)使用記錄器記錄:
我們將記錄一些應用程序消息來演示記錄器的工作原理,每個級別至少一個。NLog API 對于此類任務非常有用。
在我們的項目中,NLog 記錄器提供了 6 種日志記錄方法:Trace、Info、Warn、Debug、Error 和 Fatal。
如圖 1–5–1 所示,我們的應用程序現(xiàn)在已準備好寫入一些日志?,F(xiàn)在,讓我們構(gòu)建并運行程序以查看結(jié)果。
執(zhí)行后,控制臺的輸出應如圖 1–5–2 所示。
現(xiàn)在,讓我們檢查寫入文件中的日志。如圖 1–5–3 所示,這些文件位于 C:\\logs 中。
首先,檢查您的important.json文件,它應該如圖 1–5–4 所示。
然后,檢查您的all.json文件,它應該如圖 1–5–5 所示。
恭喜!所有步驟都成功完成!現(xiàn)在,你已使用 NLog 為 .NET 控制臺應用程序配置了具有多個日志記錄目標的日志記錄系統(tǒng)。
以上就是C#中使用NLog庫進行日志記錄的流程詳解的詳細內(nèi)容,更多關(guān)于C# NLog日志記錄的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫實例詳解
這篇文章主要介紹了C#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫的方法,以實例形式較為詳細的分析了C#連接SQL SERVER數(shù)據(jù)庫的相關(guān)步驟與具體實現(xiàn)技巧,需要的朋友可以參考下2015-11-11C#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))
下面小編就為大家?guī)硪黄狢#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決
這篇文章主要介紹了C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08結(jié)構(gòu)體和聯(lián)合體的區(qū)別及說明
文章主要介紹了C語言中的結(jié)構(gòu)體和聯(lián)合體,結(jié)構(gòu)體是一種自定義的復合數(shù)據(jù)類型,可以包含多個成員,每個成員可以是不同的數(shù)據(jù)類型,聯(lián)合體是一種特殊的數(shù)據(jù)結(jié)構(gòu),可以在內(nèi)存中共享同一段存儲空間來存儲不同類型的數(shù)據(jù)2025-01-01