Serilog:如何在 asp.net 核心的“类库”中使用日志记录

Gur*_*ley 4 serilog asp.net-core-1.0

我正在使用 Serilog 登录 asp.net 核心网站,并且项目中使用了“类库”。

  1. 如何在asp.net核心类库中实现登录?
  2. 有没有办法在“类库”中独立实现日志记录?

Chr*_*att 5

简单地说,您将Microsoft.Extensions.LoggingNuGet 包添加到您的类库,然后注入ILogger<T>您的类:

public class MyClass
{
    private readonly ILogger _logger;

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

    public void DoSomething()
    {
        _logger.LogInformation("I'm doing something here.");
    }
}
Run Code Online (Sandbox Code Playgroud)

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

  • 与 Chris Pratt 提供的解决方案一起,确保应将“MyClass”类添加到 asp.net core 的依赖项中。 (2认同)