Asp.net core ASP.NETCore2.2日志记录

Asp.net core ASP.NETCore2.2日志记录,asp.net-core,logging,Asp.net Core,Logging,我在Visual Studio 2017中创建了一个全新的ASP.Net核心MVC站点 生成的appsettings.json指定默认日志记录级别为“警告” 当我运行站点时,我仍然在控制台上获得“信息”级别的日志记录。我希望只看到警告和以上 这应该是开箱即用,还是我需要添加一些东西?啊哈!我的appsettings.json没有指定“警告”级别 至少,它是这样做的,但是向下钻取,appsetting.Development.json指定“Debug”。我是在开发模式下运行的 就个人而言,我认为最

我在Visual Studio 2017中创建了一个全新的ASP.Net核心MVC站点

生成的appsettings.json指定默认日志记录级别为“警告”

当我运行站点时,我仍然在控制台上获得“信息”级别的日志记录。我希望只看到警告和以上


这应该是开箱即用,还是我需要添加一些东西?

啊哈!我的appsettings.json没有指定“警告”级别

至少,它是这样做的,但是向下钻取,appsetting.Development.json指定“Debug”。我是在开发模式下运行的


就个人而言,我认为最好的做法是在开发和生产文件中放置不同的设置,而不是允许一个覆盖另一个。

您可以从
appsettings.Development.json

这就是
WebHost.CreateDefaultBuilder(args)
的设置方式

检查代码


您可以随意覆盖此注册。但默认情况下,该环境文件胜过普通的
appsettings.json
。但最终取决于您如何配置它。但是我认为这是一个非常合理的默认设置。

您不需要在生产环境中运行appsettings.json,您可以使用appsettings.production.json,默认文件将只有公共设置。请查看我的答案以了解详细信息。我知道您可以有一个生产版本。我只是觉得生成的项目没有这样做可能会让人困惑。我不确定这是原始问题的解决方案。作者发现是开发配置覆盖了它,所以这就是为什么会发生这种情况的解释,我可以扩展答案
 config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
       .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);