docker - 使用 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 logs
CLI 命令。该项目运行良好,Swagger UI 工作正常,API 运行良好。但我看不到任何 docker 日志。
我已经在两台 Windows 机器和一台具有相同行为的 Mac 上运行它。
我也尝试添加 Serilog 并写入控制台,这解决了“启动后没有日志”问题 - 这意味着我可以在 VS Code 的调试控制台中看到所有适当的日志,但我仍然看不到任何日志在 Docker 桌面或 CLI 中。
注意:我可以看到容器本身,以及来自 docker 工具的“stats”和其他信息——只是看不到日志。
我只是错过了某个地方的设置或应该在 VS Code 中设置的 docker 选项吗?
当我从 Visual Studio 做同样的事情时,docker 日志显示得很好。
具体步骤:
dotnet new webapi -o <someprojectname>
- 在新项目的文件夹中打开 VS Code
- 添加“构建和调试所需的资产”
- 使用所有默认值调用
Docker: Add Docker Files to Workspace
命令(Linux 容器) - 启动 Docker 配置文件
问题:启动日志显示在调试控制台中,但之后不再显示,并且日志根本不显示在 Docker 工具中。添加 Serilog(带有控制台接收器)修复了“仅启动日志”问题,但日志仍然不会显示在 Docker 工具中。
我希望info
在 docker 工具中看到这些日志,然后在我对 API 执行请求时看到一些类似的条目。如果我将日志记录更改为 Serilog 并使用控制台接收器,那么调试控制台将显示所有条目(包括当我对 API 执行请求时),但 docker 工具仍然为空。
解决方案
推荐阅读
- python - 当测试数据中没有给出目标值时如何对数据进行分类
- dart - 是否有相当于 Python 的 all() 方法的 Dart?
- android - 如何通过意图将字符串值从一个活动发送到另一个活动?
- flutter - 如何在 PageView 中的页面之间留出一些空间(边距/填充)?
- reactjs - 为表单上的 onSubmit 和 handleChange 正确传递函数
- reference - 如何避免在 rust 中克隆一个大整数
- javascript - 从方法中的另一个方法处理类方法和属性的正确方法
- python - 虽然循环不适用于两个变量
- python - 从嵌套的 Json 对象将某些数据值写入 CSV
- ms-access - 我正在尝试在表达式中使用嵌套的 IIF 语句来返回与 field = Final 的字段关联的日期