'ILoggerFactory' में 'AddConsole' की परिभाषा नहीं है


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

मुझे ऊपर गितुब पर कोड का टुकड़ा मिला है । यह निम्नलिखित त्रुटि देता है:

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

मैं नेट कोर 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बयानों के साथ घोषित किया था ?
रोमेन रेबेल्यू

जवाबों:


6

Core 3.0 में लॉगिंग को कॉन्फ़िगर करने के लिए ServiceCollection का उपयोग करने का प्रयास करें

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

20

मैं सिर्फ प्लुरलसाइट पर एक पाठ्यक्रम के बाद इस में भाग गया। अगली स्लाइड में यह बताने से पहले मैं खुद से आगे निकल गया कि क्यों। उनकी .AddConsole ILoggerFactory.Create में काम कर रही थी।

भले ही आपको केवल using Microsoft.Extensions.Loggingअपनी कक्षा में ज़रूरत हो, आपको स्पष्ट रूप से अपने .Net कोर ऐप के लिए एक पैकेज संदर्भ जोड़ना होगा।

dotnet add package Microsoft.Extensions.Logging.Console

और इसे अपने कोड में स्टेटमेंट का उपयोग करके जोड़ें

using Microsoft.Extensions.Logging;

2

.NET Core 3.0 के साथ यह कंसोल लॉगिंग को जोड़ने के लिए काफी अलग है। इसे जोड़ने के लिए आपको LoggerFactory.Create () का उपयोग करना होगा। यहाँ Microsoft डॉक्स देखें


2
यह एमएस से प्रदान किए गए उदाहरण से भी काम नहीं करता है
चार्ल्स ओक्वाग्वु

1
क्या आपको उदाहरण में एक त्रुटि संदेश मिलता है, या आपके लिए क्या काम नहीं करता है? कुछ जानकारी खराब नहीं होगी, इसलिए हम आपको सीधे
डाउनवोट

आपके द्वारा सीधे उद्धृत Microsoft डॉक्स से उदाहरण AddConsole () नहीं के रूप में सूचीबद्ध करेगा
चार्ल्स ओक्वागुवू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.