Zabrániť .ČISTÝ prihlásiť do konzoly?

0

Otázka

Implementovali sme dependency injection v mojej žiadosti. A ja som sa konfigurácia služby nasledovne.

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>();

Toto všetko funguje, okrem teraz rámca je prihlásení ku konzole, vrátane obsahu na všetky otázky, zaslané do databázy.

Nejako vnútorného zapisovania bola povolená, ale nevidím, kde som zapnutý.

Ako môžem zabrániť .ČISTÝ prihlásiť na obrazovke?

Poznámka: Logger je inštanciou vlastné logovanie triedy ConsoleLogger. Táto trieda mocnejšiu ILogger alebo použite nič iné od .ČISTÝ. Je to jednoducho vlastné triedy, ktoré tiež prihlási na konzole a súborom. Prihlásenie z tohto logger je v poriadku. A ja som sa potvrdil .ČISTÉ záznamy nie sú odoslané do tejto triedy.

Aktualizácia:

Tu je môj kód, ktorý konfiguruje hosť.

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();
}

A tu je kód, ktorý volá.

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

Najlepšiu odpoveď

1

Poznámka

Na CreateDefaultBuilder metóda:
...
...
Pridáva nasledovné prihlásenie poskytovateľov:

  • Konzoly
  • Ladenie
  • EventSource
  • Denník udalostí (len vtedy, keď beží na systéme Windows)

Odkaz Predvolené nastavenia builder

Budete musieť výslovne odstrániť predvolených poskytovateľov a pridať len tie, ktoré chcete.

IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);

//...

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

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

//...

Upozorňujeme, že ak chcete, aby sa zabránilo ďalšie rozšírenie pridanie vlastných poskytovateľov, potom vykonať zapisovanie konfigurácia posledný tak, aby ste istí, záznamníky, ktoré boli pridané.

2021-11-23 20:41:50

Áno, to je presne to, čo sa deje. Nie som si istý, prečo ConfigureLogging predpokladá logging parameter bol typ HostBuilderContext ale bol som schopný prinútiť ho, aby sa ILoggingBuilder. Vďaka za vašu pomoc.
Jonathan Wood

V iných jazykoch

Táto stránka je v iných jazykoch

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