'ILoggerFactory' enthält keine Definition für 'AddConsole'

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

Ich habe den Code oben auf Github gefunden . Es gibt den folgenden Fehler:

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

Ich verwende NET Core 3.0 und habe die folgenden NuGet-Pakete installiert.

<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" />

Warum bekomme ich das ILoggerFactoryhat die Methode nicht AddConsole()? Wie kann ich das beheben?

Drago
quelle
Mögliches Duplikat von Wie man veraltete ILoggerFactory-Methoden behebt?
Golobich
Meine Frage mag dumm sein, aber haben Sie überprüft, ob die AddConsoleMethodendefinition in dem enthalten ist, was Sie mit usingAnweisungen deklariert haben ?
Romain Reboulleau

Antworten:

6

Versuchen Sie, mit ServiceCollection die Protokollierung in Core 3.0 zu konfigurieren

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

Ich bin gerade auf diesen Kurs über Pluralsight gestoßen. Ich habe mich vor der nächsten Folie durchgesetzt und erklärt, warum ihre .AddConsole in der ILoggerFactory.Create funktioniert.

Obwohl Sie nur using Microsoft.Extensions.Loggingin Ihrer Klasse benötigen, müssen Sie Ihrer .Net Core-App explizit einen Paketverweis hinzufügen, damit die .AddConsole-Methode gefunden wird.

dotnet add package Microsoft.Extensions.Logging.Console

und fügen Sie diese using-Anweisung Ihrem Code hinzu

using Microsoft.Extensions.Logging;
Crumdev
quelle
2

Mit .NET Core 3.0 ist es ganz anders, die Konsolenprotokollierung hinzuzufügen. Sie müssen LoggerFactory.Create () verwenden, um dies hinzuzufügen. Schauen Sie sich hier die Microsoft-Dokumente an

CLoc
quelle
2
Dies funktioniert nicht einmal das Beispiel von MS funktioniert nicht
Charles Okwuagwu
1
Erhalten Sie im Beispiel eine Fehlermeldung oder was funktioniert bei Ihnen nicht? Einige Informationen wären nicht schlecht, daher können wir Ihnen helfen, anstatt eine Downvote direkt zu verteilen
CLoc
Das Beispiel aus den Microsoft-Dokumenten, die Sie direkt zitiert haben, listet AddConsole () als nicht gefunden auf
Charles Okwuagwu