开发手册 欢迎您!
软件开发者资料库

ASP.NET Core 3.0安装配置使用NLog的方法及示例代码

本文主要介绍ASP.NET Core 3.0中,安装配置记录日志的框架NLog的方法,以及使用NLog的记录日志的示例代码。

1、安装引用NLog相关依赖

1)使用Nuget界面管理器

搜索"NLog.Web.AspNetCore",在列表中找到它,点击"安装",然后在搜索"NLog",点击"安装"

相关文档VS(Visual Studio)中Nuget的使用

2)使用Package Manager命令安装

PM> Install-Package NLog.Web.AspNetCore
PM> Install-Package NLog

3)使用.NET CLI命令安装

> dotnet add TodoApi.csproj package NLog.Web.AspNetCore
> dotnet add TodoApi.csproj package NLog

4) 修改csproj文件


2、创建nlog.config配置文件

在项目根目录创建nlog.config配置文件,内容如下:

                                                                  

或者

                                                           

相关文档https://github.com/NLog/NLog/wiki/Configuration-file

3、设置nlog.config拷贝到bin

配置nlog.config启用copy to bin文件夹:

httpsfileaionlifexyzsourcedownloadid5ead885bdc72d90263e632d0

或者修改.csproj文件添加下面内容:

 

4、修改program.cs

using System;using NLog.Web;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Logging;using Microsoft.Extensions.Hosting;public static void Main(string[] args){    var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();    try    {        logger.Debug("init main");        CreateHostBuilder(args).Build().Run();    }    catch (Exception exception)    {        //NLog: catch setup errors        logger.Error(exception, "Stopped program because of exception");        throw;    }    finally    {        // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)        NLog.LogManager.Shutdown();    }}public static IHostBuilder CreateHostBuilder(string[] args) =>    Host.CreateDefaultBuilder(args)      .ConfigureWebHostDefaults(webBuilder =>      {          webBuilder.UseStartup();      })      .ConfigureLogging(logging =>      {          logging.ClearProviders();          logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);      })      .UseNLog();  // NLog: Setup NLog for Dependency injection

5、配置 appsettings.json

appsettings中指定的日志配置。json覆盖了对SetMinimumLevel的所有调用。因此,要么删除"Default":要么根据需要对其进行正确调整。

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}

还请记住更新任何特定于环境的配置,以避免任何意外,例如:

appsettings.Development.json

6、Write记录日志

在controller中注入ILogger :

using Microsoft.Extensions.Logging;
public class HomeController : Controller
{
private readonly ILogger _logger;
public HomeController(ILogger logger)
{
_logger = logger;
_logger.LogDebug(1, "NLog injected into HomeController");
}
public IActionResult Index()
{
_logger.LogInformation("Hello, this is the index!");
return View();
}

相关文档:

.NET Core nlog使用SQLite记录Log日志配置及示例代码

.NET Core和ASP.NET Core 日志框架nlog安装配置及示例代码 

.NET Core 2.0 Console(控制台)项目 Microsoft.Extensions.Logging nlog配置使用

.Net nlog配置文件中配置项说明文档

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-3