在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录

NLog是一个开源日志框架,提供了极大的灵活性和可配置选项来记录应用程序的见解。它允许同时选择多个目标,如数据库、云服务、文件、控制台等,这样用户就不必在代码中维护不同的配置。这是目前使用最广泛的日志框架。

一些重要功能包括:

  1. 易于配置
  2. 它基于模板
  3. 它具有预定义的布局,因此您可以使用自定义数据修改消息
  4. 它提供了结构化的日志记录

开源项目官方网站: https //nlog-project.org/
创建ASP.NET Core项目

步骤1:打开Visual Studio 2019并创建一个新项目。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第1张图片

步骤2:从项目模板中选择ASP.NET Core Web Application。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第2张图片

步骤3:选择项目的名称,然后单击Create(创建)按钮。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第3张图片

步骤4:选择Web Application Template并进行如下所示的适当选择。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第4张图片

步骤5:以上4个步骤将创建带有一些默认文件和文件夹的ASP.NET Core 3 Web应用程序。

由于我们必须将NLog集成到应用程序中,因此我们需要从NuGet软件包管理器中安装一些软件包。

1. NLog.Web.AspNetCore ,这是将安装NLog软件包的软件包。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第5张图片

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第6张图片

2. NLog.config ,该软件包将添加一个配置文件,我们可以在其中定义NLog配置的所有规则和目标。 NLog库将从此文件读取所有配置。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第7张图片

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第8张图片

步骤6:添加所需的程序包后,让我们在NLog.config中创建配置,在此我们将定义一个目标,该目标会将日志写入本地系统上的文件。

将自动生成的代码替换为NLog.config文件中的以下代码。


< nlog xmlns = "http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
      autoReload = "true"
      throwExceptions = "false"
      internalLogLevel = "Off" internalLogFile = "c:\temp\nlog-internal.log" >
 
   
    
  
 
  
    
  

我们还需要更改此文件的属性,以便可以在部署应用程序时将此文件复制到目录中。

右键单击NLog.config文件,然后选择属性选项,然后进行如下所示的更改。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第9张图片

步骤7:将目标添加到配置文件中的文件后,我们必须将NLog作为服务注册到Program.cs文件中,以便我可以捕获日志并将其发送到定义的目标。

用下面突出显示的内容替换Program.cs文件中的代码。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第10张图片

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging( ( hostingContext, logging ) =>
                {
                    logging.AddConfiguration(hostingContext.Configuration.GetSection( "Logging" ));
                    logging.AddDebug();
                    logging.AddNLog();
                })
                .ConfigureWebHostDefaults( webBuilder =>
                {
                    webBuilder.UseStartup();
                });

在创建WebHost时,我们在调用Startup.cs文件之前注入日志。 上面突出显示的ConfigureLogging方法是将日志添加到两个服务。

一个是Debug窗口,这是Visual Studio的功能,另一个是NLog。

AddNLog方法是我们在上述步骤中安装的Nuget软件包的一部分。

AddConfiguration方法尝试读取默认情况下由Asp.Net Core项目模板创建的日志记录配置。

我们还可以在Startup.cs类中将NLog定义为服务。 在启动类之前调用​​此函数的原因是,有时在调用启动类之前可能会引起一些运行时问题,因此我们也可以捕获它们。

步骤8:现在运行应用程序,您会发现在项目的bin文件夹中创建了一个日志文件。

在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录_第11张图片

注意:您可以在NLog.config的文件名属性中指定任何路径,这将在此处创建日志文件。 您可以在NLog配置文件中进行很多自定义。 在本文开始部分提到的asp.net mvc开发官方网站上查看它们。

原文链接: https://hackernoon.com/integrating-logging-using-nlog-in-aspnet-core-30-web-app-6f1v31be

你可能感兴趣的:(在 ASP.NET Core 3.0 Web App 中使用 NLog 集成日志记录)