'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

답변:


6

ServiceCollection을 사용하여 코어 3.0에서 로깅 구성

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

20

나는 Pluralsight에 대한 코스를 따라 이것에 부딪쳤다. 다음 슬라이드 전에 .AddConsole이 ILoggerFactory.Create에서 작동하는 이유를 설명합니다.

using Microsoft.Extensions.Logging클래스 에만 필요하더라도 .AddConsole 메서드를 찾으려면 .Net Core 앱에 패키지 참조를 명시 적으로 추가해야합니다.

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
이 예에서 오류 메시지가 표시되거나 작동하지 않는 것은 무엇입니까? 일부 정보는 나쁘지 않으므로
다운 보트를

직접 인용 한 Microsoft 문서의 예는 AddConsole ()을 찾을 수 없음으로 표시합니다.
Charles Okwuagwu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.