相关疑难解决方法(0)

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

private ILoggerFactory ConfigureLogging(ILoggerFactory factory)
{
      factory.AddConsole();
      return factory;
}
Run Code Online (Sandbox Code Playgroud)

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

“ILoggerFactory”不包含“AddConsole”的定义,并且最佳扩展方法重载“ConsoleLoggerExtensions.AddConsole(ILoggingBuilder)”需要类型为“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" />
Run Code Online (Sandbox Code Playgroud)

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

c# core nuget discord.net

57
推荐指数
5
解决办法
3万
查看次数

.NET Core 6 中的控制台登录?

使用.NET 6 Core作为控制台应用程序,我无法使调试日志记录正常工作(没有显示任何内容)。并且,我已添加Microsoft.Extensions.Logging.Console到该项目中。

您将在下面看到我尝试获取记录器引用的两种方法。

请注意,这logger.LogInformation确实有效,但logger.LogDebug没有。

问题:我如何开始LogDebug工作?

程序.cs

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

var serviceProvider = new ServiceCollection()
                            .AddLogging(builder => {
                                builder.ClearProviders();
                                builder.AddConsole();
                                builder.AddDebug();
                            })
                            .BuildServiceProvider();

// I've tried this
var logger = serviceProvider.GetService<ILogger<Program>>();

// And this
var logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger<Program>>();

logger.LogDebug("hello world");       // <-- This DOESN'T work
logger.LogInformation("something");   // <-- This DOES work
Run Code Online (Sandbox Code Playgroud)

.net .net-core .net-6.0

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

.net ×1

.net-6.0 ×1

.net-core ×1

c# ×1

core ×1

discord.net ×1

nuget ×1