Actualmente estoy escribiendo una aplicación .NET 6 que realiza algunas llamadas REST.
Por alguna razón, cuando se realizan estas llamadas, HttpClient registra lo siguiente:
[15:33:15 INF] Start processing HTTP request GET URL_GOES_HERE [15:33:15 INF] Sending HTTP request GET URL_GOES_HERE [15:33:15 INF] Received HTTP response headers after 70.5393ms - 200 [15:33:15 INF] End processing HTTP request after 73.441ms - 200
Debido a la cantidad de llamadas que estoy haciendo, esto hace que mi plataforma de registro sea difícil de navegar.
No puedo encontrar ninguna documentación en línea sobre cómo silenciaría estos registros. ¿Parecen ser nuevos en .NET 6? Al menos yo no los he visto antes de empezar este nuevo proyecto.
Encontré este repositorio de github que resuelve este problema, sin embargo, prefiero no extraer un paquete de terceros solo para silenciar algunos registros.
Tengo otros registros de nivel de "información" en mi aplicación, lo que significa que no puedo suprimir todo el nivel.
¿Realmente no hay una forma nativa de silenciar estos registros de HttpClient?
La configuración de registro se establece en su archivo appsettings.json (o en el archivo appsettings.development.json):
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }
Cambiar el valor predeterminado a "Advertencia" o "Error" (o superior) eliminará los mensajes de nivel inferior (como los mensajes de información que recibe).
Logré excluir estos registros usando Serilog
, que ya estaba usando en la aplicación.
Al configurar LoggerConfiguration, puede aplicar "filtros", así:
Log.Logger = new LoggerConfiguration() .Filter.ByExcluding("SourceContext like '%System.Net.Http.HttpClient%' and @l = 'Information'") .CreateLogger();