को रोकने के .नेट से प्रवेश करने के लिए सांत्वना है?

0

सवाल

मैं लागू किया है निर्भरता इंजेक्शन में अपने आवेदन. और मैं विन्यास सेवाओं के रूप में इस प्रकार है ।

IConfiguration configuration = context.Configuration;

services.AddDbContext<ApplicationDbContext>(options =>
{
    options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});

services.ConfigureRailIncApi(configuration);

services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));

services.AddSingleton(configuration);
services.AddSingleton(Logger);

services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();

यह सब ठीक काम करता है को छोड़कर अब ढांचे प्रवेश करने के लिए, कंसोल की सामग्री सहित किसी भी प्रश्न डेटाबेस के लिए भेजा.

किसी भी तरह के आंतरिक लॉगिंग सक्षम किया गया है, लेकिन मैं देख नहीं है जहां मैं यह सक्षम.

मैं कैसे कर सकते हैं रोकने के लिए .नेट से प्रवेश स्क्रीन करने के लिए?

ध्यान दें: Logger एक उदाहरण के अपने स्वयं के प्रवेश वर्ग ConsoleLogger. इस वर्ग को लागू नहीं करता है ILogger का उपयोग करें या किसी भी चीज़ से .शुद्ध. यह बस है एक कस्टम वर्ग है कि यह भी करने के लिए लॉग कंसोल और एक फाइल. लॉगिंग से इस लकड़हारा ठीक काम कर रहा है. और मैं इस बात की पुष्टि .नेट लॉग नहीं कर रहे हैं के लिए भेजा जा रहा इस वर्ग.

अद्यतन:

यहाँ अपने कोड विन्यस्त करता है कि मेजबान.

public void Configure(string[] args, Action< HostBuilderContext, IServiceCollection> configureServices, Action<IHostBuilder> configureHost)
{
    IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);

    hostBuilder.ConfigureServices((context, services) =>
    {
        services.AddSingleton(this);
        configureServices(context, services);
    });

    configureHost(hostBuilder);

    AppHost = hostBuilder.Build();
}

और यहाँ कोड है कि यह कहता है.

ApplicationServices appServices = new();

appServices.Configure(args, (context, services) =>
{
    IConfiguration configuration = context.Configuration;

    services.AddDbContext<ApplicationDbContext>(options =>
    {
        options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
    });

    services.ConfigureRailIncApi(configuration);

    services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));

    services.AddSingleton(configuration);
    services.AddSingleton(Logger);

    services.AddSingleton<Application>();
    services.AddSingleton<ServiceManager>();
},
builder =>
{

});
.net-6.0 .net-core c# ilogger
2021-11-23 19:36:35
1

सबसे अच्छा जवाब

1

नोट

के CreateDefaultBuilder विधि:
...
...
कहते हैं निम्नलिखित लॉगिंग सेवा प्रदाताओं के लिए:

  • कंसोल
  • डीबग
  • EventSource
  • EventLog (केवल चल रहा है जब पर Windows)

संदर्भ डिफ़ॉल्ट बिल्डर सेटिंग्स

आप की आवश्यकता होगी करने के लिए स्पष्ट रूप से हटाने डिफ़ॉल्ट प्रदाताओं को जोड़ने और केवल लोगों को आप चाहते हैं ।

IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);

//...

hostBuilder.ConfigureLogging(logging => {
    logging.ClearProviders();

    //... add my providers here
});

//...

ध्यान दें कि यदि आप चाहते हैं से बचने के लिए अन्य एक्सटेंशन जोड़कर अपने स्वयं के प्रदाताओं के लिए है, तो प्रदर्शन लॉगिंग विन्यास पिछले इतना है कि आप सुनिश्चित कर रहे हैं जिसके बारे में संग्रह करने वालों के लिए जोड़ा गया था.

2021-11-23 20:41:50

हाँ, यह वास्तव में क्या हो रहा है. मैं यकीन नहीं कर रहा हूँ क्यों ConfigureLogging ग्रहण logging पैरामीटर के प्रकार HostBuilderContext लेकिन मैं करने में सक्षम था मजबूर किया जा करने के लिए ILoggingBuilder. आपकी मदद के लिए धन्यवाद.
Jonathan Wood

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में