private ILoggerFactory ConfigureLogging(ILoggerFactory factory)
{
factory.AddConsole();
return factory;
}
J'ai trouvé le morceau de code ci-dessus sur Github . Il donne l'erreur suivante:
'ILoggerFactory' does not contain a definition for 'AddConsole' and the best extension method overload 'ConsoleLoggerExtensions.AddConsole(ILoggingBuilder)' requires a receiver of type 'ILoggingBuilder'
J'utilise NET Core 3.0 et j'ai installé les packages NuGet suivants.
<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" />
Pourquoi est-ce que j'obtiens que ILoggerFactory
n'a pas la méthode AddConsole()
? Comment puis-je réparer cela?
Essayez d'utiliser ServiceCollection pour configurer la journalisation dans Core 3.0
private IServiceCollection ConfigureLogging(IServiceCollection factory)
{
factory.AddLogging(opt =>
{
opt.AddConsole();
})
return factory;
}
Je suis juste tombé sur ceci après un cours sur Pluralsight. J'ai pris de l'avance sur moi-même avant la diapositive suivante expliquant pourquoi leur .AddConsole fonctionnait dans ILoggerFactory.Create.
Même si vous n'avez besoin que de using Microsoft.Extensions.Logging
dans votre classe, vous devez ajouter explicitement une référence de package à votre application .Net Core pour que la méthode .AddConsole soit trouvée.
dotnet add package Microsoft.Extensions.Logging.Console
Avec .NET Core 3.0, il est très différent d'ajouter la journalisation de la console. Vous devez utiliser LoggerFactory.Create () pour ajouter cela. regardez les documents Microsoft ici