📜  启动中的 asp.net 核心记录器 - C# (1)

📅  最后修改于: 2023-12-03 15:07:30.117000             🧑  作者: Mango

启动中的 ASP.NET 核心记录器 - C#

在开发 ASP.NET 核心应用程序时,记录器是调试和故障排除的重要工具。记录器可以捕获应用程序执行期间的异常和错误,并将它们输出到日志文件中,以便进一步分析和修复。

本文将介绍如何在 ASP.NET 核心应用程序中启用记录器,并将日志输出到控制台和文件。

1. 配置 Logging

在 ASP.NET 核心应用程序中启用记录器需要进行简单的配置。可以通过编辑 appsettings.json 文件来配置记录器:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

在上面的示例中,LogLevel 节点定义了记录器的级别。在 ASP.NET 核心中,记录器可以分为 6 个级别(按升序排列):Trace、Debug、Information、Warning、Error 和 Critical。设置的级别将影响记录器的输出内容。

2. 配置 Logging Provider

在配置记录器后,需要配置记录器的提供程序,以确定将日志输出到哪里。在 ASP.NET 核心中,有多个预定义的记录器提供程序,包括 Console、EventSource、AzureWebApp 和 Debug。

可以通过在 Program.cs 文件中编写以下代码来配置记录器提供程序:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddConsole();
            logging.AddDebug();
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

在上面的示例中,通过调用 ClearProviders() 方法来清除默认记录器提供程序,然后通过调用 AddConsole()AddDebug() 方法来添加控制台和调试记录器提供程序。

3. 在代码中使用 Logging

在配置和启用记录器提供程序后,可以在代码中使用记录器来记录消息和异常。通过依赖注入,在应用程序中的任何位置都可以使用 ILogger<T> 接口来获取记录器实例。

以下是一个简单的示例:

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

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

    public IActionResult Index()
    {
        _logger.LogInformation("Index action called");

        return View();
    }
}

在上述示例中,ILogger<HomeController> 接口通过依赖注入注入到 HomeController 类中。可以通过调用记录器的 LogInformation() 方法来记录消息。在这个例子中,我们记录了一个名为 "Index action called" 的信息。

结论

启用记录器是 ASP.NET 核心应用程序开发的重要部分。通过配置记录器和记录器提供程序,可以轻松地捕获异常和错误,并将它们输出到适当的渠道。在代码中使用记录器是一种简单而强大的调试和故障排除工具,可用于记录消息和异常。