'ILoggerFactory', 'AddConsole' için bir tanım içermiyor


20
private ILoggerFactory ConfigureLogging(ILoggerFactory factory)
{
      factory.AddConsole();
      return factory;
}

Yukarıdaki kod parçasını Github'da buldum . Aşağıdaki hatayı verir:

'ILoggerFactory' does not contain a definition for 'AddConsole' and the best extension method overload 'ConsoleLoggerExtensions.AddConsole(ILoggingBuilder)' requires a receiver of type 'ILoggingBuilder'

NET Core 3.0 kullanıyorum ve aşağıdaki NuGet paketlerini yükledim.

<PackageReference Include="Discord.Net" Version="2.1.1" />
<PackageReference Include="Discord.Net.Commands" Version="2.1.1" />
<PackageReference Include="Discord.Net.WebSocket" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" />

Neden ILoggerFactorybu yöntemi olmayan olsun AddConsole()? Bunu nasıl düzeltebilirim?



Sorum aptalca olabilir, ancak AddConsoleyöntem tanımının usingifadelerle bildirdiğiniz içeriğe dahil edildiğini kontrol ettiniz mi ?
Romain Reboulleau

Yanıtlar:


6

Çekirdek 3.0'da günlüğe kaydetmeyi yapılandırmak için ServiceCollection'ı kullanmayı deneyin

private IServiceCollection ConfigureLogging(IServiceCollection factory)
{
      factory.AddLogging(opt =>
                         {
                               opt.AddConsole();
                         })
      return factory;
}

20

Ben sadece Pluralsight üzerine bir kursu takip ettim. Bir sonraki slayttan önce, onların .AddConsole'unun neden ILoggerFactory.Create'de çalıştığını açıklayan kendimin önüne geçtim.

using Microsoft.Extensions.LoggingSınıfınızda yalnızca ihtiyacınız olsa da , .AddConsole yönteminin bulunabilmesi için .Net Core uygulamanıza açıkça bir paket başvurusu eklemeniz gerekir.

dotnet add package Microsoft.Extensions.Logging.Console

ve bunu kullanarak deyimi kodunuza ekleyin

using Microsoft.Extensions.Logging;

2

.NET Core 3.0 ile konsol günlüğü eklemek oldukça farklıdır. Bunu eklemek için LoggerFactory.Create () yöntemini kullanmanız gerekir. microsoft dokümanlarına bak


2
MS'den sağlanan örnek bile çalışmıyor
Charles Okwuagwu

1
örnekte bir hata mesajı alıyorsunuz veya sizin için işe yaramayan nedir? Bazı bilgiler kötü olmaz, bu yüzden doğrudan bir downvote dağıtmak yerine size yardımcı olabiliriz
CLoc

Doğrudan alıntıladığınız Microsoft belgelerinden alınan örnek AddConsole () öğesini bulunamadı olarak
listeleyecektir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.