欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中使用NLog庫進行日志記錄的流程詳解

 更新時間:2024年06月04日 11:56:31   作者:碼農(nóng)浩克  
NLog 是 .NET 的日志記錄框架,具有豐富的日志路由和管理能力,極大地幫助您生成和管理日志,NLog 是一個庫,可以輕松地同時記錄和管理多個不同區(qū)域中的數(shù)據(jù),本文將給大家介紹在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#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫的方法,以實例形式較為詳細的分析了C#連接SQL SERVER數(shù)據(jù)庫的相關(guān)步驟與具體實現(xiàn)技巧,需要的朋友可以參考下
    2015-11-11
  • C#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))

    C#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))

    下面小編就為大家?guī)硪黄狢#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • C#多線程編程中的鎖系統(tǒng)(二)

    C#多線程編程中的鎖系統(tǒng)(二)

    這篇文章主要介紹了C#多線程編程中的鎖系統(tǒng)(二),本文講解了volatile、Interlocked、ReaderWriterLockSlim等升級鎖和原子操作的使用實例,需要的朋友可以參考下
    2015-04-04
  • C#實現(xiàn)窗口之間的傳值

    C#實現(xiàn)窗口之間的傳值

    本文給大家介紹的是C#中利用靜態(tài)類和靜態(tài)變量來實現(xiàn)窗口間傳值的方法和示例,非常的實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C#線程池ThreadPool用法簡介

    C#線程池ThreadPool用法簡介

    這篇文章介紹了C#線程池ThreadPool的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#控制臺帶參數(shù)程序源碼編寫實例講解

    C#控制臺帶參數(shù)程序源碼編寫實例講解

    像ipconfig /all 這樣的CMD命令想必大家都知道,但是很多童鞋可能不知道怎么寫這樣的控制臺帶參數(shù)的程序,需要的朋友可以了解下
    2012-12-12
  • C#重寫DataGridView

    C#重寫DataGridView

    這篇文章主要為大家詳細介紹了C#重寫DataGridView的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Unity?UGUI的Canvas畫布組件使用示例詳解

    Unity?UGUI的Canvas畫布組件使用示例詳解

    這篇文章主要介紹了Unity?UGUI的Canvas畫布組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決

    C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決

    這篇文章主要介紹了C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 結(jié)構(gòu)體和聯(lián)合體的區(qū)別及說明

    結(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

最新評論