在.net core web 項目中使用Nlog記錄日志


第1步,添加NLog.Web.AspNetCore包引用

方法1

在項目上右擊“依賴項”---“管理Nuget程序包(N)…”,然后在瀏覽對話框中輸入“NLog.Web.AspNetCore”查找包,找到后選中並單擊“安裝”。

 

 

方法2

或者直接在包管理器控制台輸入以下命令:

Install-Package NLog.Web.AspNetCore

 

 

  

第2步,添加Nlog.config配置文件

(1)在項目名稱上擊右鍵,選擇 ”添加” --- “新建項”。

 

 

(2)在彈出的“添加新項”對話框中左邊選擇“ASP.NET Core”,右邊選擇“XML文件” ,“名稱”框中輸入“Nlog.config”,最后單擊“添加”按鈕。

 

 

(3)修改剛添加的Nlog.config文件內容如下:

配置文件內容:

<?xml version="1.0" encoding="utf-8"?>

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <targets>

        <target xsi:type="File"

                name="logfile"

                fileName="${basedir}/logs/${shortdate}.log"

                keepFileOpen="false"

                layout="${longdate}|${callsite:fileName=True}

                |${uppercase:${level}}|${message} ${exception}" />

        <target xsi:type="File"

                name="debugfile"

                fileName="${basedir}/logs/${shortdate}_debug.log"

                keepFileOpen="false"

                layout="${longdate}|${callsite:fileName=True}

                |${uppercase:${level}}|${message} ${exception}" />

    <target xsi:type="File"

            name="errfile"

            fileName="${basedir}/logs/${shortdate}_error.log"

            keepFileOpen="false"

            layout="${longdate}|${callsite:fileName=True}

            |${uppercase:${level}}|${message} ${exception}" />

  </targets>

    <rules>

    <logger name="*" level="Debug" writeTo="debugfile" />

      <logger name="*" level="Error" writeTo="errfile" />

    <logger name="*" minlevel="Trace" writeTo="logfile" />

    </rules>

</nlog>

 

(4)修改Nlog.config文件屬性“復制到輸出目錄”為“始終復制”(這一步很重要,否則運行時會報找不到文件的異常).

 

 

 

 

第3步,在項目中打開Startup.cs文件,修改Configure方法

(1)   先給Configure方法增加IloggerFactory loggerFactory參數注入日志對象,此時增加的代碼會報錯,需在類文件頭部添加引用代碼:

using Microsoft.Extensions.Logging;

 

 

(2)   接着在Configure方法內部增加如下兩行代碼:

loggerFactory.AddNLog();//使用NLog作為日志記錄工具  

env.ConfigureNLog("Nlog.config");  //引入Nlog配置文件

注意:配置文件名為 ”Nlog.config” ,則env.ConfigureNLog("Nlog.config")這行代碼可以不需要(Nlog默認找的就是Nlog.config文件)。如果是其他名字,則必須加上這一行代碼。

添加以上代碼后會報錯,需在類文件頭部添加如下引用代碼:

using NLog.Extensions.Logging;

using NLog.Web;

 

 

第4步,在構造函數中注入日志對象(以Home控制器為例)。

ILogger<HomeController> logger;

public HomeController(ILogger<HomeController> _logger)

{

    logger = _logger;

}

增加代碼后程序會報錯,需在類文件頭部增加如下引用代碼:

using Microsoft.Extensions.Logging;

 

代碼如下圖所示:

 

 

第5步:在控制器的Index方法中增加寫日志的測試方法。

增加的代碼如下:

public IActionResult Index()

{

    logger.LogInformation("Index Begin...");

    logger.LogTrace("Index Begin...");

    logger.LogDebug("Index Begin...");

    logger.LogError("Index Begin...");

 

    return View();

}

 

如下圖所示:

 

 

第6步:運行程序測試日志記錄是否成功。

運行項目后,打開根目錄下的:bin\Debug\netcoreapp2.2\logs

子目錄,即可以看到生成的日志文件

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM