在.net控制台应用程序中配置日志记录级别



我正在编写一个.net控制台应用程序,设置日志记录级别时遇到问题。我用";日志记录";部分,但它不起作用-我将级别设置为Error,但仍然会得到Info级别的错误。我知道appsettings加载是正确的,因为其余的设置都被正确绑定了。

我的主要课程:

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

和我的appsettings.json:

{
"Postgres": {
"Host": "localhost",
"DatabaseName": "db",
"Username": "admin",
"Password": "admin",
"MinLogLevel": "Error"
},
"Redis": {
"Host": "localhost:6379",
"Password": null
},
"Logging": {
"LogLevel": {
"Default": "Error"
}
}
}

添加直接登录配置解决了我的问题:

.ConfigureLogging((context, config) =>                    
config.AddConfiguration(context.Configuration.GetSection("Logging")))

整个主要功能:

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

最新更新