我有一个库,我想在其中使用日志记录,所以在构造函数中,我传递了一个 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);
}