Serilog:如何在 asp.net 核心的 'Class Library' 中使用日志记录

Serilog : How to use logging in 'Class Library' of asp.net core

我正在使用 Serilog 登录 asp.net 核心网站,项目中使用了 'class library'。

  1. 我们如何在 asp.net 核心 class 库中实现日志记录?
  2. 有没有办法在'class library'中独立实现日志记录?

简单地说,您将 Microsoft.Extensions.Logging NuGet 包添加到您的 class 库中,然后将 ILogger<T> 注入您的 classes:

public class MyClass
{
    private readonly ILogger _logger;

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

    public void DoSomething()
    {
        _logger.LogInformation("I'm doing something here.");
    }
}

ILogger 是一个 外观 ,一个 API 用于日志记录,实际上它本身并不执行任何日志记录。当你有一个真正的应用程序使用它时,实际的日志记录是通过你插入到外观的提供者发生的。这就是 Serilog 之类的东西出现的地方。在您的实际应用程序中,您将配置日志记录以使用 Serilog,然后任何时候任何时候调用 ILogger 上的方法,该方法都会代理到您的实际日志记录提供程序( Serilog),然后 Serilog 执行实际的日志记录。