'ILoggerFactory' không chứa định nghĩa cho 'AddConsole'


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

Tôi đã tìm thấy đoạn mã trên trên Github . Nó đưa ra lỗi sau:

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

Tôi đang sử dụng NET Core 3.0 và tôi đã cài đặt các gói NuGet sau.

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

Tại sao tôi nhận được mà ILoggerFactorykhông có phương pháp AddConsole()? Làm thế nào tôi có thể sửa lỗi này?



Câu hỏi của tôi có thể là ngu ngốc, nhưng bạn đã kiểm tra AddConsoleđịnh nghĩa phương thức được bao gồm trong những gì bạn đã khai báo với các usingcâu lệnh chưa?
Romain Reboulleau

Câu trả lời:


6

Hãy thử sử dụng ServiceCollection để định cấu hình đăng nhập trong lõi 3.0

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

20

Tôi chỉ chạy vào đây sau một khóa học về Pluralsight. Tôi đã vượt lên chính mình trước khi slide tiếp theo giải thích lý do tại sao .AddConsole của họ hoạt động trong ILoggerFactory.Create.

Mặc dù bạn chỉ cần using Microsoft.Extensions.Loggingtrong lớp, nhưng bạn cần thêm một cách rõ ràng một tham chiếu gói vào ứng dụng .Net Core của mình để tìm thấy phương thức .AddConsole.

dotnet add package Microsoft.Extensions.Logging.Console

và thêm câu lệnh này vào mã của bạn

using Microsoft.Extensions.Logging;

2

Với .NET Core 3.0, việc thêm ghi nhật ký giao diện điều khiển là khá khác nhau. Bạn phải sử dụng LoggerFactory.Create () để thêm phần này. xem tài liệu microsoft ở đây


2
Điều này không hoạt động ngay cả ví dụ được cung cấp từ MS không hoạt động
Charles Okwuagwu

1
Bạn có nhận được một thông báo lỗi trong ví dụ này không, hoặc cái gì không phù hợp với bạn? Một số thông tin sẽ không tốt, vì vậy chúng tôi có thể giúp bạn thay vì phân phối trực tiếp một downvote
CLoc

Ví dụ từ các tài liệu Microsoft mà bạn trích dẫn trực tiếp sẽ liệt kê AddConsole () là không tìm thấy
Charles Okwuagwu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.