在控制臺應用程式中使用 .net 6.0.101Microsoft.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);
uj5u.com熱心網友回復:
首先,您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>();
您可以通過 appsettings設定控制臺日志級別:
{
"Logging": {
"LogLevel": {
"Microsoft": "Warning"
},
"Console": {
"LogLevel": {
"Microsoft": "Debug"
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/398768.html
