在.net core web 项目中使用Nlog记录日志

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

方法1

在项目上右击“依赖项”---“管理Nuget程序包(N)…”,然后在浏览对话框中输入“NLog.Web.AspNetCore”查找包,找到后选中并单击“安装”。

 在.net core web 项目中使用Nlog记录日志_第1张图片

在.net core web 项目中使用Nlog记录日志_第2张图片

 

方法2

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

Install-Package NLog.Web.AspNetCore

 在.net core web 项目中使用Nlog记录日志_第3张图片

在.net core web 项目中使用Nlog记录日志_第4张图片

 

  

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

(1)在项目名称上击右键,选择 ”添加” --- “新建项”。

 在.net core web 项目中使用Nlog记录日志_第5张图片

 

(2)在弹出的“添加新项”对话框中左边选择“ASP.NET Core”,右边选择“XML文件” ,“名称”框中输入“Nlog.config”,最后单击“添加”按钮。

 在.net core web 项目中使用Nlog记录日志_第6张图片

 

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

配置文件内容:

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

   

       

                name="logfile"

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

                keepFileOpen="false"

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

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

       

                name="debugfile"

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

                keepFileOpen="false"

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

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

   

            name="errfile"

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

            keepFileOpen="false"

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

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

 

   

   

     

   

   

 

(4)修改Nlog.config文件属性“复制到输出目录”为“始终复制”(这一步很重要,否则运行时会报找不到文件的异常).

 在.net core web 项目中使用Nlog记录日志_第7张图片

 

 在.net core web 项目中使用Nlog记录日志_第8张图片

 

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

(1)   先给Configure方法增加IloggerFactory loggerFactory参数注入日志对象,此时增加的代码会报错,需在类文件头部添加引用代码:

using Microsoft.Extensions.Logging;

 在.net core web 项目中使用Nlog记录日志_第9张图片

 

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

 在.net core web 项目中使用Nlog记录日志_第10张图片

 

第4步,在构造函数中注入日志对象(以Home控制器为例)。

ILogger logger;

public HomeController(ILogger _logger)

{

    logger = _logger;

}

增加代码后程序会报错,需在类文件头部增加如下引用代码:

using Microsoft.Extensions.Logging;

 

代码如下图所示:

在.net core web 项目中使用Nlog记录日志_第11张图片

 

 

第5步:在控制器的Index方法中增加写日志的测试方法。

增加的代码如下:

public IActionResult Index()

{

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

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

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

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

 

    return View();

}

 

如下图所示:

 在.net core web 项目中使用Nlog记录日志_第12张图片

 

第6步:运行程序测试日志记录是否成功。

运行项目后,打开根目录下的:bin\Debug\netcoreapp2.2\logs

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

在.net core web 项目中使用Nlog记录日志_第13张图片

 

 

 

你可能感兴趣的:(在.net core web 项目中使用Nlog记录日志)