ASP.NET Core:come disattivare la registrazione all'avvio

ASP.NET Core:come disattivare la registrazione all'avvio

Quando avvii un'app Web ASP.NET Core, potresti visualizzare i seguenti messaggi di registrazione all'avvio:

info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:12345
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: D:\TestProject\Code language: plaintext (plaintext)

Questi messaggi provengono dall'avere un logger della console. Se stai utilizzando Host.CreateDefaultBuilder(), aggiunge un provider di registrazione della console per impostazione predefinita.

Esistono due semplici modi per eliminare questi messaggi di registrazione:disattivare la registrazione in appsettings.json o rimuovere i provider di registrazione predefiniti. Mostrerò come eseguire queste due opzioni di seguito.

Opzione 1:disattiva l'accesso ad appsettings.json

In appsettings.json (o appsettings.Development.json), puoi disattivare la registrazione all'avvio impostando Microsoft.Hosting.Lifetime su Nessuno:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "None"
    }
  }
}

Code language: JSON / JSON with Comments (json)

Nota:questo presuppone che tu stia caricando in appsettings.json.

Opzione 2:rimuovere i provider di registrazione predefiniti

Quando utilizzi Host.CreateDefaultBuilder(), vengono aggiunti più provider di registrazione predefiniti, incluso un logger della console. Il logger della console è ciò che registra i messaggi di avvio che desideri rimuovere. Pertanto, per eliminare i messaggi di avvio, è necessario rimuovere il logger della console.

Per eliminare il logger della console, devi utilizzare IWebHostBuilder.ConfigureLogging() e chiamare LoggingBuilder.ClearProviders(), in questo modo:

public class Program
{
	public static void Main(string[] args)
	{
		CreateHostBuilder(args).Build().Run();
	}

	public static IHostBuilder CreateHostBuilder(string[] args) =>
		Host.CreateDefaultBuilder(args)
			.ConfigureWebHostDefaults(webBuilder =>
			{
				webBuilder.UseStartup<Startup>()
				.ConfigureLogging(loggingBuilder => loggingBuilder.ClearProviders());
			});
}
Code language: C# (cs)

Questo elimina i messaggi di registrazione di avvio. Se desideri eliminare solo il logger della console, puoi aggiungere nuovamente gli altri provider di registrazione all'interno di ConfigureLogging().