.Net Core Logger 实现log写入本地文件系统

时尚捕手 2019-06-21 ⋅ 44 阅读

在开发过程中,日志是非常重要的,它可以记录系统的运行状态、异常信息等。在 .Net Core 中,除了可以使用日志库如 Serilog、NLog 等来实现日志的记录,也可以使用 .Net Core 自带的 ILogger 接口来实现日志的记录。本篇博客将介绍如何使用 .Net Core Logger 实现将日志写入本地文件系统。

1. 添加必要的依赖

为了实现将日志写入文件系统,我们需要添加 Microsoft.Extensions.LoggingMicrosoft.Extensions.Logging.ConsoleMicrosoft.Extension.Logging.File 包。

dotnet add package Microsoft.Extensions.Logging
dotnet add package Microsoft.Extensions.Logging.Console
dotnet add package Microsoft.Extensions.Logging.File

2. 在项目中添加 Logger 配置

在项目的 Program.cs 文件中的 CreateHostBuilder 方法中,我们可以添加如下的配置来配置 Logger:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders(); // 清除已有的日志提供程序
            logging.AddConsole(); // 添加将日志输出到控制台的提供程序
            logging.AddFile("logs/mylog-{Date}.txt"); // 添加将日志输出到文件的提供程序
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

通过 logging.ClearProviders 方法可以清除已有的日志提供程序,然后使用 logging.AddConsole 方法将日志输出到控制台,并使用 logging.AddFile 方法将日志输出到文件。

3. 使用 Logger 记录日志

Logger 的使用非常简单,只需要在需要记录日志的类中注入 ILogger 接口,并通过 ILogger 接口的相应方法来记录日志。例如:

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

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

    public IActionResult Index()
    {
        _logger.LogInformation("访问了首页");
        return View();
    }
}

在上面的例子中,我们通过构造函数注入了 ILogger<HomeController> 实例,并使用 _logger.LogInformation 方法记录了一条信息。

4. 运行应用程序并查看日志

当我们运行应用程序时,会在项目根目录中的 logs 文件夹下生成一个名为 mylog-{Date}.txt 的日志文件,其中 {Date} 会被替换为实际的日期。我们可以打开这个文件来查看日志信息。

总结

通过使用 .Net Core Logger,我们可以轻松地将日志记录到本地文件系统中。这样我们就能够方便地查看应用程序的运行状态和异常信息。希望本篇博客能够对你有所帮助,谢谢阅读!

参考链接:


全部评论: 0

    我有话说: