1
0

feat: 重构配置布局,server.listen/storage/logging + probes.execution 分组

- 新增 server.listen (host/port)、server.storage (dataDir/retention)、
  server.logging 分组
- 新增 probes.execution (maxConcurrentChecks) 分组,替代顶层 runtime
- 旧配置入口 (runtime/logging/server.host/server.port/server.dataDir)
  启动期拒绝
- 更新 types.ts、builder.ts、config-loader.ts 适配新路径
- 更新 probe-config.schema.json、probes.example.yaml、README.md、
  DEVELOPMENT.md
- 补充 config-loader 和 variables 测试覆盖新路径和旧入口拒绝
- 同步 5 个 delta specs 到主规范 (probe-config, config-variables,
  data-retention, probe-engine, runtime-logging)
- 归档 openspec change reorganize-config-layout
This commit is contained in:
2026-05-21 13:54:41 +08:00
parent 5238dbe77d
commit e448cb4654
14 changed files with 614 additions and 376 deletions

View File

@@ -8,7 +8,7 @@
系统 SHALL 在配置解析成功后初始化统一运行时 logger。logger SHALL 同时输出命令行 pretty 日志和文件 JSONL 日志。命令行输出、文件输出和文件滚动 SHALL 始终启用,不提供关闭开关。
#### Scenario: 默认初始化 logger
- **WHEN** 配置文件未声明 `logging`
- **WHEN** 配置文件未声明 `server.logging`
- **THEN** 系统 SHALL 使用默认等级 `info` 初始化 console pretty 输出和 `<resolved dataDir>/logs/dial.log` 文件 JSONL 输出
#### Scenario: 模块 child logger
@@ -20,14 +20,14 @@
- **THEN** 系统 SHALL 通过正式 logger 输出 `fatal` 日志并以非零状态退出
### Requirement: 日志等级语义
系统 SHALL 支持 `trace``debug``info``warn``error``fatal` 六个日志等级。`logging.level` SHALL 作为全局默认等级,`logging.console.level``logging.file.level` SHALL 在省略时继承全局等级。
系统 SHALL 支持 `trace``debug``info``warn``error``fatal` 六个日志等级。`server.logging.level` SHALL 作为全局默认等级,`server.logging.console.level``server.logging.file.level` SHALL 在省略时继承全局等级。
#### Scenario: 目的地等级继承
- **WHEN** 配置只声明 `logging.level: warn`
- **WHEN** 配置只声明 `server.logging.level: warn`
- **THEN** console 和 file 输出均 SHALL 使用 `warn` 作为最低输出等级
#### Scenario: 目的地等级覆盖
- **WHEN** 配置声明 `logging.level: info``logging.console.level: warn``logging.file.level: debug`
- **WHEN** 配置声明 `server.logging.level: info``server.logging.console.level: warn``server.logging.file.level: debug`
- **THEN** console SHALL 输出 `warn` 及以上日志file SHALL 输出 `debug` 及以上日志
#### Scenario: 默认不输出 debug 检查摘要
@@ -35,7 +35,7 @@
- **THEN** 每次检查的 debug 摘要 SHALL NOT 输出到 console 或 file
### Requirement: 文件日志滚动
系统 SHALL 对文件日志启用滚动策略。滚动 SHALL 在 `logging.file.rotation.size``logging.file.rotation.frequency` 任一条件满足时触发。`logging.file.rotation.maxFiles` SHALL 表示最多保留的归档文件数量,不包含当前正在写入的日志文件。
系统 SHALL 对文件日志启用滚动策略。滚动 SHALL 在 `server.logging.file.rotation.size``server.logging.file.rotation.frequency` 任一条件满足时触发。`server.logging.file.rotation.maxFiles` SHALL 表示最多保留的归档文件数量,不包含当前正在写入的日志文件。
#### Scenario: 按大小滚动
- **WHEN** 当前日志文件达到配置的 `rotation.size`