首页 > 解决方案 > 使用 Docker Logs 看不到来自 VS Code 和 ASP.NET (Core) 的日志

问题描述

我从 dotnet CLI 创建了一个 .NET 5 API 项目(shortname = webapi),在 VS Code 中打开了该项目,添加了“构建/调试所需的资产”(.vscode 启动和 tasks.json 文件),然后使用命令面板“Docker:将 Docker 文件添加到项目”项添加了 Docker 支持——每一步都使用默认值。我没有进行其他初始更改(并且正在使用项目的 https 风格)。

当我调试项目时,我可以在调试控制台中看到前几个日志条目(在初始启动后没有),但不能从 Docker 日志中看到——无论是来自 Docker Desktop 还是docker logsCLI 命令。该项目运行良好,Swagger UI 工作正常,API 运行良好。但我看不到任何 docker 日志。

我已经在两台 Windows 机器和一台具有相同行为的 Mac 上运行它。

我也尝试添加 Serilog 并写入控制台,这解决了“启动后没有日志”问题 - 这意味着我可以在 VS Code 的调试控制台中看到所有适当的日志,但我仍然看不到任何日志在 Docker 桌面或 CLI 中。

注意:我可以看到容器本身,以及来自 docker 工具的“stats”和其他信息——只是看不到日志。

我只是错过了某个地方的设置或应该在 VS Code 中设置的 docker 选项吗?

当我从 Visual Studio 做同样的事情时,docker 日志显示得很好。

具体步骤:

问题:启动日志显示在调试控制台中,但之后不再显示,并且日志根本不显示在 Docker 工具中。添加 Serilog(带有控制台接收器)修复了“仅启动日志”问题,但日志仍然不会显示在 Docker 工具中。

这是调试控制台: 在此处输入图像描述

我希望info在 docker 工具中看到这些日志,然后在我对 API 执行请求时看到一些类似的条目。如果我将日志记录更改为 Serilog 并使用控制台接收器,那么调试控制台将显示所有条目(包括当我对 API 执行请求时),但 docker 工具仍然为空。

标签: dockerasp.net-coreserilogvscode-debugger

解决方案


推荐阅读