Blazor WebAssembly服务端项目控制器日志无输出问题求助
Blazor WebAssembly服务端项目日志不显示问题解决指南
一、确认Logger注入正确性
控制器中的ILogger必须通过构造函数注入,不能手动实例化,否则日志无法正常输出。示例代码如下:
using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; [ApiController] [Route("[controller]")] public class DemoController : ControllerBase { private readonly ILogger<DemoController> _logger; // 构造函数注入ILogger实例 public DemoController(ILogger<DemoController> logger) { _logger = logger; } [HttpPut] public IActionResult Put() { _logger.LogCritical($"In Put"); return Ok(); } }
二、配置服务端项目日志
Blazor WASM服务端基于ASP.NET Core,需通过配置文件或代码确保日志能输出到控制台。
1. appsettings.json配置示例
确保Logging节点中开启了Critical级别的日志输出:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning", // 可指定目标控制器的日志级别,确保Critical级别生效 "YourProjectNamespace.DemoController": "Critical" }, "Console": { "IncludeScopes": false, "LogLevel": { "Default": "Critical", "Microsoft.AspNetCore": "Warning" } } } }
2. Program.cs日志配置(.NET 6+顶级语句)
显式添加控制台日志提供器,确保日志能输出到控制台:
var builder = WebApplication.CreateBuilder(args); // 清除默认日志提供器,仅保留控制台 builder.Logging.ClearProviders(); builder.Logging.AddConsole(); // 设置全局最低日志级别为Critical builder.Logging.SetMinimumLevel(LogLevel.Critical); // 注册控制器服务 builder.Services.AddControllers(); var app = builder.Build(); app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();
三、检查输出目标
- 在Visual Studio中运行时,需在输出窗口的下拉菜单中选择服务端项目名称,查看服务端的控制台输出,而非Blazor客户端的输出。
- 使用
dotnet run命令运行时,直接查看终端窗口的输出即可。
四、额外排查点
- 确认未添加会覆盖控制台输出的其他日志提供器(如仅配置了文件日志而未启用控制台)。
- 检查是否存在自定义日志过滤规则或第三方中间件修改了日志级别。
内容的提问来源于stack exchange,提问作者Prv
相关产品推荐
相关产品推荐

