“ ILoggerFactory”不包含“ AddConsole”的定义


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

我已经在Github上找到了上面的代码。它给出以下错误:

'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,并且安装了以下NuGet软件包。

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

为什么我得到那个ILoggerFactory没有方法AddConsole()?我怎样才能解决这个问题?



我的问题可能很愚蠢,但是您是否检查过AddConsole方法声明中是否包含方法定义using
Romain Reboulleau

Answers:


6

尝试使用ServiceCollection在Core 3.0中配置日志记录

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

20

我只是在学习Pluralsight的课程后才遇到这个问题。在下一张幻灯片之前,我先介绍了自己的.AddConsole为什么在ILoggerFactory.Create中起作用的原因。

即使只using Microsoft.Extensions.Logging在类中需要,也需要显式向.Net Core应用程序添加程序包引用,以便找到.AddConsole方法。

dotnet add package Microsoft.Extensions.Logging.Console

并将此using语句添加到您的代码中

using Microsoft.Extensions.Logging;

2

使用.NET Core 3.0,添加控制台日志记录是完全不同的。您必须使用LoggerFactory.Create()添加它。 在这里查看Microsoft文档


2
即使MS提供的示例也不起作用,这也不起作用
Charles Okwuagwu

1
您是否在示例中收到错误消息,或者什么对您不起作用?某些信息可能还不错,所以我们可以为您提供帮助,而不是直接分发
弃权票-CLoc

您直接引用的Microsoft文档中的示例将列出未找到的AddConsole()
Charles Okwuagwu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.