如何配置 serilog 以在非 ASP Core 项目的类库中使用?

问题描述 投票:0回答:0

我有一个库,我想在其中使用日志记录,所以在构造函数中,我传递了一个 Microsoft.Extensions.Logging.ILogger 参数。

我的库的使用者不是 ASP Core 项目,在这种情况下,我想执行一个测试以查看记录器是否工作。对于测试,我正在使用 NUint。

我已经阅读了一些如何配置 Serilog 以与 Microsoft.Extensions.Logging 一起使用的示例,但所有这些都是关于在 ASP Core 应用程序中创建主机的。但这不是我的情况。

我已经在我的测试类的 Start() 方法中尝试过这个:

_logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.File("log.txt",
    rollingInterval: RollingInterval.Day,
    rollOnFileSizeLimit: true)
.CreateLogger();

但是我得到一个错误,因为我的库 expectMicrosoft.Extensions.Logging 和我得到一个错误。

如何配置 Serilog 以用作期望 Microsoft.Extensions.Logging 的参数?

谢谢。

编辑:这是我要在其中注入记录器的课程。

使用 Microsoft.Extensions.Logging;

公共类 MyServiceApplicationLayer {

ILogger _logger;


public MyServiceApplicationLayer(ILogger<MyServiceApplicationLayer> paramLogger)
{
    _logger = paramLogger;
}


//some methods

}

这是我的测试类的设置,我在其中尝试创建 Serilog 的实例。

ILogger _logger;



[SetUp]
public void Setup()
{
    _logger = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                .Enrich.FromLogContext()
                .WriteTo.File("log.txt",
                    rollingInterval: RollingInterval.Day,
                    rollOnFileSizeLimit: true)
                .CreateLogger();

    _serviceApplicationLayer = new MyServiceApplicationLayer(_logger);
}
c# serilog
© www.soinside.com 2019 - 2024. All rights reserved.