使用Rider运行ASP.NET Core 2.1应用时日志不显示该如何解决?
解决方案
1. 检查日志配置文件
首先确认你的appsettings.Development.json(你当前启动环境为Development)里的Logging节点配置正确,默认如果日志级别设置过高会过滤掉运行时信息:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Information", "Microsoft.Hosting.Lifetime": "Information" }, "Console": { "LogLevel": { "Default": "Information" } } } }
如果之前把Microsoft相关的日志级别设为Warning或更高,只会输出警告及以上级别的日志,不会显示正常运行的信息日志。
2. 核对Rider启动配置
- 优先选择
launchSettings里配置的xxxxx.xxxx.app(Project模式)启动,不要用IIS Express模式,IIS Express的日志默认不会输出到Rider主控制台 - 打开Rider右上角的运行配置下拉菜单,选择「编辑配置」,找到你使用的项目启动项,确认「重定向输出到IDE控制台」选项处于勾选状态
- 确认配置页中没有勾选「禁用控制台输出」相关选项
3. 检查Program.cs日志注入配置
.NET 6+ 极简API模板默认会注入控制台日志提供程序,如果你手动清空过日志提供程序,需要手动加回控制台输出:
var builder = WebApplication.CreateBuilder(args); // 如果你写了ClearProviders清空了默认提供程序,必须手动加回Console builder.Logging.ClearProviders(); builder.Logging.AddConsole(); builder.Logging.AddDebug(); // 其余服务注册逻辑... var app = builder.Build(); // 中间件配置逻辑... app.Run();
4. 核对代码中日志级别匹配
你自己代码中输出的日志如果是LogDebug级别,需要把配置里对应命名空间的日志级别调整为Debug才会显示,日志级别从低到高为:Trace > Debug > Information > Warning > Error > Critical,只有等于或高于配置级别的日志才会输出。
内容的提问来源于stack exchange,提问作者San Jaisy
相关产品推荐
相关产品推荐

