Skip to content

v0.7.1 · Swoole 日志写入加固

Choose a tag to compare

@sllhSmile sllhSmile released this 18 Sep 12:29
· 6 commits to main since this release

本次更新

  • 新增 trace_log.write_mode:默认 async 保持原有行为,可设为 sync 在当前执行单元完成采集日志的写入尝试;无效配置明确报错。
  • 异步创建子协程抛错或返回失败值时记录诊断并同步回退;内容处理及 Handler 异常仍与业务隔离,request ID 在采集子协程中继承。
  • 新增真实 Swoole 协程和 CLI/API/Guzzle/DB/Redis → 结构化 JSON 链路测试,补齐 SQL 插值及边界/失败路径。新增可复现的性能脚本和本机基线。
  • Composer 明确要求官方 ext-swoole >=5.0;CI 为 PHP 8.2、8.3、8.4 安装 Swoole。GitHub 源码保留开发测试与 benchmark,Composer dist 排除这些开发资料。

兼容性与注意事项

  • 保留 Schema 1、现有公开接口、采集器默认开关及默认异步行为;从 v0.7.0 升级无需迁移现有采集配置。Swoole 现在是安装硬依赖,无 Swoole/OpenSwoole 环境不在支持范围。
  • 同步模式只保证当前调用完成写入尝试,不保证物理落盘或零丢失;异步在 Worker 终止时可能丢失尾部日志,调度失败同步回退时可能短暂增加业务延迟。
  • SQL 插值 bindings 与 Redis 非 AUTH 命令参数沿用原始记录方式,可能包含敏感信息;请按数据分级谨慎开启相关采集器。

验证

  • PHPUnit:82 tests / 264 assertions;PHPStan Level 8、PHP-CS-Fixer dry-run、Composer 校验通过。
  • GitHub Actions:PHP 8.2、8.3、8.4 + Swoole 三个 job 全绿(run 35344767631)。
  • 独立目录从零安装包开发依赖并通过 PHPUnit、PHPStan Level 8 与代码风格检查;性能脚本完成 sync/async × 等待/立即终止测量。