在控制台应用程序中使用.net 6.0.101,Microsoft.Extensions.DependencyInjection.Abstractions给出了调用GetService方法所描述的错误。
var serviceProvider = new ServiceCollection();
serviceProvider
.AddLogging()
.AddSingleton<IParentPublisher, ParentPublisher>()
.AddDbContext<LPContext>(options => options.UseSqlServer(configuration["connectionstring"]))
.BuildServiceProvider();
serviceProvider
.GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug);发布于 2021-12-30 16:16:15
首先,您的serviceProvider实际上应该被命名为serviceCollection。次要-应该在AddConsole的ILoggingBuilder参数上调用AddLogging (这是很大的年长的更改),并且对于最新的包没有重载接受日志级别。
所以您的代码应该如下所示:
var serviceCollection = new ServiceCollection();
serviceCollection
// add stuff
.AddLogging(builder => builder.AddConsole());
var serviceProvider = serviceCollection.BuildServiceProvider();
var loggerFactory = serviceProvider
.GetService<ILoggerFactory>();您可以通过应用程序设置设置控制台日志级别:
{
"Logging": {
"LogLevel": {
"Microsoft": "Warning"
},
"Console": {
"LogLevel": {
"Microsoft": "Debug"
}
}
}
}https://stackoverflow.com/questions/70533593
复制相似问题