'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.