'ILoggerFactory' tidak mengandung definisi untuk 'AddConsole'


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

Saya telah menemukan potongan kode di atas di Github . Ini memberikan kesalahan berikut:

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

Saya menggunakan NET Core 3.0 dan saya telah menginstal paket NuGet berikut.

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

Mengapa saya mendapatkan itu ILoggerFactorytidak memiliki metode AddConsole()? Bagaimana saya bisa memperbaikinya?



Pertanyaan saya mungkin bodoh, tetapi apakah Anda memeriksa bahwa AddConsoledefinisi metode termasuk dalam apa yang Anda nyatakan dengan usingpernyataan?
Romain Reboulleau

Jawaban:


6

Coba gunakan ServiceCollection untuk mengonfigurasi logging di core 3.0

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

20

Saya baru saja menjalankan ini setelah kursus Pluralsight. Saya mendahului diri saya sebelum slide berikutnya menjelaskan mengapa .AddConsole mereka berfungsi di ILoggerFactory.Create.

Meskipun Anda hanya perlu using Microsoft.Extensions.Loggingdi kelas Anda, Anda perlu secara eksplisit menambahkan referensi paket ke aplikasi .Net Core Anda agar metode .AddConsole dapat ditemukan.

dotnet add package Microsoft.Extensions.Logging.Console

dan tambahkan pernyataan menggunakan ini ke kode Anda

using Microsoft.Extensions.Logging;

2

Dengan .NET Core 3.0 sangat berbeda untuk menambahkan logging konsol. Anda harus menggunakan LoggerFactory.Create () untuk menambahkan ini. lihat dokumen microsoft di sini


2
Ini tidak berfungsi bahkan contoh yang diberikan dari MS tidak berfungsi
Charles Okwuagwu

1
apakah Anda mendapatkan pesan kesalahan dalam contoh, atau apa yang tidak berhasil untuk Anda? Beberapa informasi tidak akan buruk, jadi kami dapat membantu Anda alih-alih mendistribusikan downvote secara langsung
CLoc

Contoh dari dokumen Microsoft yang Anda kutip secara langsung akan mencantumkan AddConsole () sebagai tidak ditemukan
Charles Okwuagwu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.