我正在学习.net核心日志记录。我也阅读了一些博客和文档。 我想知道为什么每次使用以下设置时总是显示“ Microsoft.Hosting.Lifetime”信息日志。
{
"Logging": {
"LogLevel": {
"Default": "Error",
"Microsoft": "Error",
"Microsoft.Hosting.Lifetime": "Error",
"DemoWeb.Controllers.HomeController": "Error"
}
},
"AllowedHosts": "*"
}
要仔细检查(如果我的appsettings.json工作正常),我在ConfigureService中添加了它。
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(config =>
{
// clear out default configuration
config.ClearProviders();
config.AddConfiguration(Configuration.GetSection("Logging"));
config.AddDebug();
config.AddEventSourceLogger();
config.AddConsole();
});
services.AddControllersWithViews();
}
对于我自己添加的“ HomeController”类,它正在按预期工作。
我只想从控制台日志中删除“ Microsoft.Hosting.Lifetime”。
预先感谢
答案 0 :(得分:1)
首先,如@KirkLarkin所述,在开发中,appsettings.Development.json
配置将覆盖appsettings.json
中的值。
有关更多信息,您可以检查:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1#appsettingsjson
要从控制台日志中删除“ Microsoft.Hosting.Lifetime”
在您的项目中,可以启用多个logging providers。如果您只想从 ConsoleLogger 中关闭关于Information
的{{1}}级日志,则可以尝试应用以下日志过滤器规则。
"Microsoft.Hosting.Lifetime"
您可以通过configuring logging为该特定提供商实现相同的目标。
services.AddLogging(config =>
{
// clear out default configuration
config.ClearProviders();
config.AddConfiguration(Configuration.GetSection("Logging"));
//add log filter for ConsoleLoggerProvider
config.AddFilter<ConsoleLoggerProvider>("Microsoft.Hosting.Lifetime", LogLevel.Error);
config.AddDebug();
config.AddEventSourceLogger();
config.AddConsole();
});