You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:06:29