Estoy escribiendo una aplicación de consola .net y tengo un problema para configurar los niveles de registro. Creé archivos de configuración de aplicaciones con la sección "Registro", pero no funciona: configuré el nivel en Error y aún obtengo errores de nivel de información. Sé que la configuración de la aplicación se está cargando correctamente porque el resto de la configuración está enlazada correctamente.
Mi clase principal:
static async Task Main(string[] args) { await new HostBuilder() .ConfigureAppConfiguration((context, config) => { config.AddJsonFile("appsettings.json", true); config.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", true, true); config.AddEnvironmentVariables(); if (args != null) config.AddCommandLine(args); }) .ConfigureServices((_, services) => services.AddMagic()) .RunConsoleAsync(); }y mi appsettings.json:
{ "Postgres": { "Host": "localhost", "DatabaseName": "db", "Username": "admin", "Password": "admin", "MinLogLevel": "Error" }, "Redis": { "Host": "localhost:6379", "Password": null }, "Logging": { "LogLevel": { "Default": "Error" } } }Agregar una configuración de inicio de sesión directo resolvió mi problema:
.ConfigureLogging((context, config) => config.AddConfiguration(context.Configuration.GetSection("Logging")))Toda la función principal:
static async Task Main(string[] args) { await new HostBuilder() .ConfigureAppConfiguration((context, config) => { config.AddEnvironmentVariables(); config.AddJsonFile("appsettings.json", true, true); config.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", true, true); if (args != null) config.AddCommandLine(args); }) .ConfigureLogging((context, config) => config.AddConfiguration(context.Configuration.GetSection("Logging"))) .ConfigureServices(services => services.AddMagic()) .RunConsoleAsync(); }