如何读取 VS Code(Code - OSS)开发构建的日志目录定位问题

发布时间:2026/11/5 14:58:03

如何读取 VS Code(Code - OSS)开发构建的日志目录定位问题 如何读取 VS CodeCode - OSS开发构建的日志目录定位问题【免费下载链接】vscodeVisual Studio Code项目地址: https://gitcode.com/GitHub_Trending/vscode6/vscode在 Code - OSS 的源码开发构建dev build中调试时主进程、渲染进程、扩展宿主、Agent 宿主等各进程都会把运行日志写入本地用户数据目录。当窗口启动异常、扩展报错、终端或网络出现问题时第一手信息就藏在这些日志文件里。本文说明如何找到开发构建的日志根目录、定位最近一次运行的时间戳目录并按问题类型读取对应日志文件完成一次可复现的问题定位。适用前提你运行的是从源码启动的开发构建而非正式发布的 VS Code 产品包运行方式沿用项目内文档的说明见 .github/skills/code-oss-logs/SKILL.md。先确认日志根目录在哪开发构建的用户数据目录默认是$HOME/.vscode-oss-dev日志根目录即$HOME/.vscode-oss-dev/logs/这个目录名不是凭空来的。仓库的 product.json 中定义了dataFolderName: .vscode-oss而 src/vs/platform/product/common/product.ts 中有一段“从源码运行”Running out of sources的逻辑当环境变量VSCODE_DEV存在时产品配置会被改写为dataFolderName: \${product.dataFolderName}-dev也就是在原名后追加-dev最终得到.vscode-oss-dev。两种情况下目录会不同读日志前先确认你用的是哪一个如果你用--user-data-dirdir启动了 Code OSS日志根目录改为dir/logs/。dir是你启动命令里实际传入的目录路径。启动/调试辅助脚本经常会在.build/下创建临时用户数据目录。项目内文档明确提示当你能从启动命令里确认实际使用的用户数据目录时优先使用那个精确目录而不是默认目录。找到最近一次运行的时间戳目录每次运行会创建形如20260330T163430的时间戳文件夹上面是文档示例实际以你机器上出现的时间为准。按修改时间排序通常最新的就是当前要排查的那一次ls -lt $HOME/.vscode-oss-dev/logs | head -5若使用了自定义用户数据目录把路径替换为实际目录ls -lt user-data-dir/logs | head -5这里user-data-dir是你启动命令中通过--user-data-dir指定的那个目录。进入最新的时间戳目录并列出内容ls -lt $HOME/.vscode-oss-dev/logs/20260330T163430按问题类型选择要读的日志文件每个时间戳目录的日志文件布局是固定的。项目内文档给出的结构如下方括号注释为文档原文对各文件的用途说明timestamp/ ├── main.log # Electron main process (app lifecycle, window management) ├── agenthost.log # Agent host process (Copilot agent, model listing, agent sessions) ├── mcpGateway.log # MCP gateway/server coordination ├── sharedprocess.log # Shared process (extensions gallery, global services) ├── telemetry.log # Telemetry events ├── terminal.log # Terminal/pty activity ├── ptyhost.log # Pty host process ├── network-shared.log # Shared network activity ├── editSessions.log # Edit sessions / cloud changes ├── userDataSync.log # Settings sync ├── remoteTunnelService.log # Remote tunnel service │ └── window1/ # Per-window logs (window1, window2, etc.) ├── renderer.log # Renderer process (workbench UI, services, startup) ├── network.log # Per-window network activity ├── views.log # View/panel activity ├── notebook.rendering.log # Notebook rendering ├── customizationsDebug.log # Agent customizations debug info (Agents app) ├── mcpServer.*.log # Per-MCP-server logs (one file per configured server) │ ├── exthost/ # Extension host logs │ ├── exthost.log # Extension host main log (activation, errors) │ ├── extHostTelemetry.log │ ├── publisher.extension/ # Per-extension log folders │ │ └── extension.log │ └── output_logging_timestamp/ # Extension output channels │ └── output_timestamp/ # Output channel logs (workbench side) ├── tasks.log # Tasks output ├── agentSessionsOutput.log # Agent sessions output (Agents app) └── agenthost.clientId.log # Agent host IPC traffic when tracing is enabled排查时按下表选文件该表来自项目内文档的 Key Files by Use Case排查目标查看的文件应用启动 / 崩溃main.log、window1/renderer.log扩展问题window1/exthost/exthost.log、window1/exthost/publisher.ext/Copilot / agent 问题agenthost.log、window1/exthost/GitHub.copilot-chat/Agent host IPCAgents appwindow1/output_timestamp/agenthost.*.logMCP 服务器问题mcpGateway.log、window1/mcpServer.*.log终端问题terminal.log、ptyhost.log网络 / 认证问题network-shared.log、window1/network.log设置同步userDataSync.logAgent 自定义window1/customizationsDebug.logAgents app其中publisher.ext是“发布者.扩展名”形式的目录名如GitHub.copilot-chatclientId是 agent host IPC 日志中的客户端标识。多窗口会话时第二个窗口对应window2/以此类推window1/是第一个窗口。读取、检索与确认可读内容选定文件后用tail看最近的条目用rg在整个运行目录内检索关键词或错误# 查看某个日志文件的最近 50 行timestamp 替换为实际时间戳目录名 tail -50 timestamp/window1/renderer.log # 在整个运行目录中检索标记串或错误 rg -n MY_PROBE|error timestamp # 列出该次运行中非空的日志文件 find timestamp -type f -size 0 -print三条使用边界都来自项目内文档不是所有日志文件都有内容。很多文件创建时是空的只有对应子系统产生输出时才会被写入因此“文件不存在”不代表运行异常用上面的find命令先确认可读文件更直接。日志行格式为YYYY-MM-DD HH:MM:SS.mmm [level] message可按时间戳与日志级别过滤。验证读对了目录时间戳目录名应与本次启动时间吻合按修改时间排序最新且window1/下的文件随你最近的操作更新。若目录名与启动时间对不上多半是启动时用了--user-data-dir或临时目录回到第一步重新确认根目录。窗口重载后的output_目录说明同一次会话内每次窗口重载reload都会新建一个output_timestamp/目录并在exthost/下创建对应的output_logging_timestamp/。会话级的时间戳目录如20260330T163430/保持不变。因此要读当前或最近一次重载的输出通道日志选时间戳最新的那个output_*目录更早的output_*目录保存的是同一会话内更早重载的日志。可选分支让临时 console.log 探针写入日志文件如果你在源码里加了临时console.log探针默认情况下这些输出可能只出现在 DevTools 或 stdout 里。要让它持久化到上述日志文件需要临时开启开发构建的 console 转发开关打开 src/vs/platform/log/common/log.ts找到isDevConsoleLogForwardingEnabled。当前源码中该标志为export const isDevConsoleLogForwardingEnabled false // || Boolean(true) // done weirdly so that a lint warning prevents you from pushing this ;临时把注释掉的Boolean(true)行启用改为export const isDevConsoleLogForwardingEnabled false || Boolean(true);。项目内文档强调这种“别扭”的写法是故意设计让 lint 警告阻止该标志被提交不要把启用状态的标志提交进仓库。重新构建或让 watch 任务拾取改动。启动 Code OSS或 Agents app并复现问题。按前文的目录结构读取相应日志。收尾时把标志恢复为默认关闭状态并删除所有临时console.log探针。开启转发后console.debug、console.error、console.info、console.log、console.warn会经由进程日志服务写入常规日志文件探针落在其所在进程的日志中主进程在main.log渲染/workbench 在window1/renderer.log共享进程在sharedprocess.logpty host 在ptyhost.logagent host 在agenthost.log。若未开启转发需要持久化到日志文件的探针应改用ILogService而不是原生console.log。限制与下一步本文路径仅适用于源码运行的开发构建-dev后缀目录来自VSCODE_DEV环境下的产品配置改写见 src/vs/platform/product/common/product.ts发布构建的目录名以各自产品的dataFolderName为准。若排查的是 Agent Host 调试日志导出包Export Agent Host Debug Logs 生成的 bundle项目内另有专门的检索技能 agent-host-logs不属于本文的开发构建日志路径。完成排查后的正常状态临时开关已恢复关闭、探针已删除、结论以对应日志文件中的实际记录为准。【免费下载链接】vscodeVisual Studio Code项目地址: https://gitcode.com/GitHub_Trending/vscode6/vscode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/5 2:59:45

Paramount 3156310-041射频发生器

Paramount 3156310-041,这是 Advanced Energy(AE)的 Paramount 1513 射频发生器,AMAT 备件号 0190-44118,产线机台上干射频这摊活的。 产品特点 AE Paramount 1513 射频发生器,Advanced Energy 原厂制造 …

2026/11/5 14:58:02

Nikon 4S587-005控制模块

Nikon 4S587-005,这其实是 Queensgate NS2300/A 位置传感器单元在 Nikon 光刻机里的备件号,不是普通控制模块。它装在 Nikon NSR 系列步进扫描光刻机上,负责精密位置反馈。产品特点Queensgate NS2300/A 三通道位置传感器单元,Niko…

2026/10/24 9:05:34

别忽视苹果的音频智能功能,它揭示了未来发展方向

约翰特纳斯作为苹果CEO首次主题演讲的前五分钟,既不是产品发布,也不是回顾苹果的历史。相反,这是对iPhone作为"智能个人中枢"的重新定义。苹果制造的所有设备中,iPhone不需要向任何人做过多解释或介绍。但这种将其重新定…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 13:55:19

GD32E10x官方例程入门:从GPIO点灯到串口调试

简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&…

2026/11/5 13:50:18

基于Django的运维平台实战:资产、发布、巡检、告警一体化

简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落…

2026/11/5 13:25:11

基于ADS122U04IPWR与STM32F427ZI的工业测温方案设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑