第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
子目錄,即可以看到生成的日志文件


