Skip to content

feat(logging): 接入结构化日志 v2 插件操作事实(由宿主代记) - #3

Merged
xiaoyumuxi merged 2 commits into
mainfrom
codex/plugin-logging-v2
Nov 4, 2026
Merged

xiaoyumuxi merged 2 commits into
mainfrom
codex/plugin-logging-v2

Conversation

@xiaoyumuxi

@xiaoyumuxi xiaoyumuxi commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

概要

PHP 插件接入结构化日志 v2 的插件操作事实。本插件是纯声明式插件(languageServers 声明 Intelephense 的 --stdio 启动),没有自己的进程,无法像 SDK 插件那样发送 lithe/log。宿主 1lck/Lithe-IDEA#1720 因此替它记录:languageServer/start(Intelephense 每次启动尝试)写成与 SDK 插件同一组的 plugins.operation.finished / plugins.operation.failed,落到 plugins/io.github.lithe-idea.php-support/host 通道。

插件清单、启动方式和版本都不需要改;本 PR 在 README 里说明插件会得到哪些事实和失败码。

插件会得到的操作事实

  • 通道:plugins/io.github.lithe-idea.php-support/host,与 SDK 插件的 lithe/log 同一类通道,日志窗口可按插件筛选。
  • 操作:languageServer/start(Intelephense 每次启动尝试)。
  • 成功:plugins.operation.finished(INFO,含耗时),条件是 Intelephense 的 initialize 成功。
  • 失败:plugins.operation.failed(ERROR),失败码只取自执行阶段,不解析错误文本:
    • host.executableUnavailable:无法解析启动命令
    • host.launchFailed:进程拉起失败
    • host.initializeFailed:初始化握手失败
    • host.exitedEarly:就绪前退出
    • host.timedOut:初始化超时
  • 谁记录:启动前的解析失败(找不到可执行文件、准备失败)由 macOS 宿主记录;进入启动后宿主把这次尝试交给 Core,由 Core 记录唯一结果。
  • 取消、停止、被取代的尝试不记录;事实不含插件输出、路径或命令行。

README 新增“诊断日志”

  • 在启用结构化日志 v2 的 macOS preview 中,宿主按语言服务身份把 Intelephense 的生命周期、window/logMessage 和有界 stderr 写入当前会话的 lsp/php 通道。
  • 保留 --stdio 启动方式,脱敏、截断、写入和保留都由宿主统一处理,插件不创建自己的日志 writer。
  • PHP 程序和 PHPUnit 的输出仍属于运行/测试控制台,不复制进诊断日志。
  • 排障用 Lithe 的日志窗口和诊断导出,详细诊断只临时开启。
  • 不要把 PHP 源码、HTTP/数据库内容、环境变量、凭据或完整协议载荷写进日志。
  • Windows 仍是 v1,不声明 Windows v2 已验收。
  • 本次新增一段:说明上面的宿主代记操作事实和失败码,并链接宿主实现 https://github.com/1lck/Lithe-IDEA/pull/1720。

验证

预期的 CI 状态与合并顺序

限制

  • 只覆盖 macOS 宿主;Windows 仍是 v1 writer。
  • 未在 Lithe 整机日志窗口里做端到端验收。

配套 PR:

- README 新增“诊断日志”一节:说明宿主记录到哪个通道、哪些输出留在控制台、
  排障时用什么入口,以及哪些内容不应写入日志
- 注明 Windows 仍为 v1 日志,未声明 Windows v2 验收
@xiaoyumuxi xiaoyumuxi changed the title docs: 说明结构化日志 v2 下的诊断日志去向 feat(logging): 接入结构化日志 v2 插件操作事实(由宿主代记) Nov 4, 2026
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review November 4, 2026 10:58
@xiaoyumuxi
xiaoyumuxi merged commit 06147ea into main Nov 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant