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

发布时间:2026/9/11 19:23:23

如何读取 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/9/11 19:18:23

Paramount 3156310-041射频发生器

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

2026/9/11 19:18:23

Nikon 4S587-005控制模块

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

2026/9/11 19:18:23

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

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

2026/9/11 20:08:29

单片机存储结构详解:主存、地址空间与Flash/SRAM实战分析

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

2026/9/11 20:08:29

拉流失败完整流程:工业园区项目从0到1怎么做

在工业园区智能化升级过程中,园区周界、厂房、仓库、出入口及消防通道等区域广泛部署了视频监控。以“安全带识别任务”为例,往往因为网络隔离、防火墙拦截、NVR多级转发或视频编码不匹配等原因,导致平台频繁出现视频流接入失败。本文将结合工…

2026/9/11 20:08:29

ESC(EtherCAT Slave Controller)从入门到精通(一):初识从站核心

本文面向零基础的嵌入式软件工程师和工业自动化初学者,带你从最基础的概念开始,一步步理解ESC是什么、为什么需要它、以及它是如何工作的。 一、什么是ESC? 1.1 全称与定义 ESC 的全称是 EtherCAT Slave Controller,中文译为 E…

2026/9/11 20:08:29

VS Code highlight-words配置与实战指南

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

2026/9/11 20:08:29

服务器运维:mysql 安装笔记

# 1. 安装 MySQL Server dnf install -y mysql-server# 2. 启动服务并设置开机自启 systemctl enable --now mysqld# 3. 验证版本与服务状态 mysql --version systemctl status mysqld# 4. 本地免密登录验证 mysql -u root -e "SELECT VERSION();"# 5.(推…

2026/9/11 20:03:28

学术论文AI检测工具评测与降AI率实战指南

1. 项目背景与核心痛点2026年的学术圈正面临一场前所未有的信任危机。去年Nature期刊发布的统计数据显示,全球范围内被标记为"AI生成嫌疑"的论文数量同比激增217%,超过43%的投稿在初审阶段就因AI率超标被直接拒稿。我实验室上个月就有两篇耗时…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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