如何在Visual Studio 2022中查看ASP.NET Core Web API里Console.WriteLine的输出?
如何在Visual Studio 2022中查看ASP.NET Core Web API里Console.WriteLine的输出?
嘿,我完全懂你现在的困扰——在自定义过滤器里写了Console.WriteLine想验证过滤器是否生效,但翻遍Visual Studio的输出区域就是找不到日志,对吧?别慌,这几个方法帮你搞定:
先检查输出面板的源选择
首先打开输出面板:点击顶部菜单的【视图】→【输出】(快捷键Ctrl+W,O)。默认情况下输出面板可能显示的是「生成」或「调试」的内容,但Console.WriteLine的输出是发送给Web服务器的,所以你需要在面板顶部的下拉菜单里,选择「ASP.NET Core Web Server」(或者对应你项目名称的服务器选项),这样就能看到过滤器里的控制台输出了。更推荐:改用ASP.NET Core内置日志框架
Console.WriteLine其实不是ASP.NET Core里的最佳实践,框架自带的ILogger接口不仅能输出到控制台,还能灵活配置到日志文件、数据库等地方,而且在Visual Studio里追踪起来更方便。具体步骤:- 在自定义过滤器中注入
ILogger<T>:public class MyCustomFilter : IActionFilter { private readonly ILogger<MyCustomFilter> _logger; public MyCustomFilter(ILogger<MyCustomFilter> logger) { _logger = logger; } public void OnActionExecuting(ActionExecutingContext context) { // 用ILogger输出日志 _logger.LogInformation("自定义过滤器的OnActionExecuting方法触发啦!"); } public void OnActionExecuted(ActionExecutedContext context) { // 这里也可以添加日志逻辑 } } - 确保Program.cs里配置了Console日志提供者(默认已经包含,但可以显式确认):
var builder = WebApplication.CreateBuilder(args); // 显式添加Console日志支持 builder.Logging.AddConsole();
这时候运行项目,在输出面板选对源就能看到清晰的日志了,调试时还能在「日志」窗口追踪。
- 在自定义过滤器中注入
切换到控制台运行模式
如果你的项目用Kestrel作为服务器,还可以设置项目以控制台应用的方式启动,这样Console.WriteLine的内容会直接显示在弹出的控制台窗口里:- 右键项目→【属性】→【调试】
- 在「启动」下拉菜单里选择「控制台应用」
- 保存后重新运行项目,就能看到弹出的控制台窗口,里面会实时显示你的过滤器输出。
备注:内容来源于stack exchange,提问作者Syed Ali Rizvi
相关产品推荐
相关产品推荐

