聊聊.Net,Core配置Nlog.md的问题

yizhihongxing

聊聊.Net Core配置NLog

NLog是一个流行的日志记录库,它可以帮助我们在应用程序中记录日志。在本攻略中,我们将介绍如何在.Net Core应用程序中配置NLog,以便记录日志。以下是聊聊.Net Core配置NLog的完整攻略:

步骤一:安装NLog

首先,需要安装NLog。可以使用以下命令在.Net Core应用程序中安装NLog:

dotnet add package NLog.Web.AspNetCore

步骤二:创建NLog配置文件

接下来,需要创建一个NLog配置文件。可以使用以下代码创建一个名为“NLog.config”的NLog配置文件:

<?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"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\nlog-internal.log">

  <targets>
    <target name="file" xsi:type="File" fileName="c:\temp\nlog.log" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="file" />
  </rules>
</nlog>

在上面的代码中,我们创建了一个名为“file”的目标,它将日志记录到“c:\temp\nlog.log”文件中。我们还创建了一个名为“*”的规则,它将所有日志记录到“file”目标中。

步骤三:配置NLog

接下来,需要在.Net Core应用程序中配置NLog。可以使用以下代码在“Program.cs”文件中配置NLog:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using NLog.Web;

namespace MyApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var logger = NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();

            try
            {
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Stopped program because of exception");
                throw;
            }
            finally
            {
                NLog.LogManager.Shutdown();
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
                })
                .UseNLog();
    }
}

在上面的代码中,我们使用 NLogBuilder.ConfigureNLog 方法加载 NLog 配置文件,并使用 GetCurrentClassLogger 方法获取当前类的日志记录器。我们还在 CreateHostBuilder 方法中使用 UseNLog 方法配置 NLog。

示例一:记录日志

以下是一个示例,演示如何在.Net Core应用程序中记录日志:

  1. 创建一个名为“NLogDemo”的新.Net Core应用程序。
  2. 在“NLogDemo”项目中,打开“Program.cs”文件,并将以下代码添加到该文件中:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using NLog.Web;
using System;

namespace NLogDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var logger = NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();

            try
            {
                logger.Info("Application started");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Stopped program because of exception");
                throw;
            }
            finally
            {
                NLog.LogManager.Shutdown();
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
                })
                .UseNLog();
    }
}

在上面的代码中,我们在“Application started”消息之前使用 logger.Info 方法记录日志。

  1. 在“NLogDemo”项目中,打开“HomeController.cs”文件,并将以下代码添加到该文件中:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;

namespace NLogDemo.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            _logger.LogInformation("Index page visited");
            return View();
        }
    }
}

在上面的代码中,我们在 Index 操作方法中使用 _logger.LogInformation 方法记录日志。

  1. 在“NLogDemo”项目中,打开“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"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\nlog-internal.log">

  <targets>
    <target name="file" xsi:type="File" fileName="c:\temp\nlog.log" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="file" />
  </rules>
</nlog>

在上面的代码中,我们将日志记录到“c:\temp\nlog.log”文件中。

  1. 在浏览器中,导航到“http://localhost:5000/”。
  2. 在“c:\temp\nlog.log”文件中查看日志记录。

在上面的示例中,我们在“Application started”消息之前使用 logger.Info 方法记录日志,并在 Index 操作方法中使用 _logger.LogInformation 方法记录日志。我们还将日志记录到“c:\temp\nlog.log”文件中。

示例二:使用NLog记录异常

以下是一个示例,演示如何使用NLog记录异常:

  1. 创建一个名为“NLogDemo”的新.Net Core应用程序。
  2. 在“NLogDemo”项目中,打开“HomeController.cs”文件,并将以下代码添加到该文件中:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;

namespace NLogDemo.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            try
            {
                throw new Exception("Something went wrong");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "An error occurred");
            }

            return View();
        }
    }
}

在上面的代码中,我们在 Index 操作方法中使用 _logger.LogError 方法记录异常。

  1. 在“NLogDemo”项目中,打开“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"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\nlog-internal.log">

  <targets>
    <target name="file" xsi:type="File" fileName="c:\temp\nlog.log" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="file" />
  </rules>
</nlog>

在上面的代码中,我们将日志记录到“c:\temp\nlog.log”文件中。

  1. 在浏览器中,导航到“http://localhost:5000/”。
  2. 在“c:\temp\nlog.log”文件中查看日志记录。

在上面的示例中,我们在 Index 操作方法中使用 _logger.LogError 方法记录异常,并将日志记录到“c:\temp\nlog.log”文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:聊聊.Net,Core配置Nlog.md的问题 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • C#之如何实现真正的四舍五入

    C#之如何实现真正的四舍五入攻略 在C#中,常规的四舍五入操作使用 Math.Round(double d) 方法即可实现,但是有时候我们需要更自由的控制四舍五入的行为,比如保留小数位数、指定舍入方向等等。那么如何实现呢?下面我就为大家呈现一个C#实现真正的四舍五入攻略: 1. 使用 decimal 类型进行舍入 因为 double 类型的数据在进行计算时可…

    C# 2023年6月6日
    00
  • 详解ASP.NET Core 处理 404 Not Found

    详解ASP.NET Core处理404 Not Found攻略 在ASP.NET Core应用程序中,当用户请求一个不存在的资源时,服务器将返回404 Not Found错误。本攻略将介绍如何在ASP.NET Core应用程序中处理404 Not Found错误。 步骤 以下是处理404 Not Found错误的步骤: 添加UseStatusCodePage…

    C# 2023年5月17日
    00
  • 使用jQuery Uploader显示文件上传进度

    使用jQuery Uploader显示文件上传进度的完整攻略如下: 准备工作 在使用jQuery文件上传进度条之前,需要确保以下条件已经满足: 你已经安装了jQuery 你已经引入了jQuery Uploader插件 HTML结构 为了展示文件上传进度条,需要为文件上传添加一些HTML元素,如下所示: <input type="file&qu…

    C# 2023年6月1日
    00
  • 超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

    首先介绍下如何用C#获取一个字符串的真实长度,在C#中可以使用String类中的Length属性来获取字符串的长度,但是需要注意的是Length属性返回的是字符串中字符的数量而不是字节数量。为了获取字符串的字节数量,可以使用Encoding类提供的GetBytes方法来获取字符串的字节数组,然后通过计算该数组的长度来得到字符串的字节数量。 具体的做法可以使用…

    C# 2023年6月8日
    00
  • FtpHelper实现ftp服务器文件读写操作(C#)

    FtpHelper实现ftp服务器文件读写操作(C#) 简介 FtpHelper是一个C#编写的FTP工具,用于实现FTP服务器文件的读写操作。本文将介绍使用FtpHelper进行FTP文件读写操作的方法。 安装 使用NuGet包管理器安装FtpHelper Install-Package FtpHelper 连接FTP服务器 使用FtpHelper连接FT…

    C# 2023年6月1日
    00
  • ASP.NET Core使用自定义日志中间件

    ASP.NET Core使用自定义日志中间件 在ASP.NET Core应用程序中,我们经常需要记录日志以便更好地跟踪和调试应用程序。本攻略将详细介绍如何使用自定义日志中间件来记录日志。 自定义日志中间件 自定义日志中间件是指在ASP.NET Core应用程序中使用中间件来记录日志。我们可以使用自定义日志中间件来记录请求和响应的详细信息,以便更好地跟踪和调试…

    C# 2023年5月17日
    00
  • ASP.NET中的C#基础知识

    ASP.NET中的C#基础知识 ASP.NET是一种广泛使用的Web应用程序框架,而C#是一种常用的ASP.NET开发语言。在ASP.NET的开发过程中,必须掌握C#的基础知识才能进行编码和开发。本文将介绍ASP.NET中的C#基础知识,帮助您更好地理解和掌握ASP.NET开发中的C#应用。 数据类型 C#中的数据类型与其他编程语言类似,包括int、floa…

    C# 2023年5月15日
    00
  • C# 9 新特性之增强的foreach详解

    C# 9 新特性之增强的 foreach 详解 简介 在 C# 9 中,foreach 循环得到了一些增强,包括更好的性能,支持使用 ref 局部变量以及对 IAsyncEnumerable 类型的异步迭代支持。 更好的性能 在 C# 9 中,foreach 的性能得到了提升。它会通过对枚举器对象的优化,减少一些额外的开销,以获得更好的性能。 ref 局部变…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部