feat(T-003): 建立日志与运行产物目录策略

- src/paths.py: 集中管理 logs/、artifacts/ 路径与产物命名
  (artifacts/<task_id>/<时间戳>_<step>.png|.xml),_safe 安全化防路径穿越,
  运行时自动创建且被 .gitignore 忽略。
- src/logging_config.py: 统一日志格式(含 task_id/step),控制台 + logs/app.log,
  缺上下文时由 filter 补默认值,setup 幂等;约定不记录敏感信息。
- src/main.py: 启动时初始化运行目录与日志。
- 运行方式统一为 python -m src.main(绝对导入下的唯一干净入口),
  同步替换 00/03/05/current-state 文档命令与 dev.bat。
- 文档:04 §七 补 paths.py 与产物命名规则;tasks/progress/current-state 更新。

验证:compileall OK;unittest Ran 17 tests OK;python -m src.main exit=0,logs/app.log 写入正常。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
chengma
2026-06-24 17:32:28 +08:00
co-authored by Claude Opus 4.8
parent 41bc666322
commit b1e38ffd7a
13 changed files with 246 additions and 25 deletions
+12 -3
View File
@@ -14,9 +14,9 @@
## 当前摘要
- 日期:2026-06-24
- 阶段:Phase 0 地基(T-001、T-002 完成)/ 原型验证前
- 当前任务:无(T-002 已完成)
- 下一个任务:`T-003 建立日志和运行产物目录策略`
- 阶段:Phase 0 地基完成(T-001/2/3)/ 进入 Phase 1 原型验证
- 当前任务:无(T-003 已完成)
- 下一个任务:`T-101 验证 ADB 和 uiautomator2 真机连接`(需真机环境)
- 当前阻塞:尚未提供真实 Excel 样例、Android 真机和测试商品链接
## 进度记录
@@ -66,6 +66,15 @@
- 范围:未含 `PaymentConfig`/`PaymentMode`/`RunnerState`(属支付与执行器任务,按需引入)。
- 验证:`python3 -m compileall src` OK;`python3 -m unittest discover -s tests -t .` → Ran 10 tests, OK。
### 2026-06-24 · T-003 建立日志和运行产物目录策略(DONE)
- 完成:`src/paths.py` 集中管理运行时路径与产物命名(`logs/`、`artifacts/` 运行时创建并 gitignore;截图/UI XML 按 `artifacts/<task_id>/<时间戳>_<step>.png|.xml` 归档,`_safe` 安全化防路径穿越);`src/logging_config.py` 统一日志格式(含 `task_id`/`step`,控制台 + `logs/app.log`,缺上下文时由 filter 补默认值,幂等 setup)。
- 集成:`src/main.py` 启动时 `ensure_runtime_dirs()` + `setup_logging()` 并写一条启动日志。
- 修正:`main.py` 引入 `from src.*` 后 `python src/main.py` 直接运行会 `ModuleNotFoundError`;运行方式统一为 `python -m src.main`,同步替换 `00/03/05/current-state` 文档命令与 `dev.bat`。
- 测试:`tests/test_paths.py`、`tests/test_logging.py` 覆盖安全化、路径生成与归档、防穿越、日志上下文与幂等。
- 安全:日志格式不含敏感字段,并在 `logging_config`/`05` 留下「不记录支付密码/验证码/账号密码」约定。
- 验证:`python3 -m compileall src` OK;`python3 -m unittest discover -s tests -t .` → Ran 17 tests, OK;`python3 -m src.main` exit=0 且 `logs/app.log` 正常写入。
## 阻塞与风险
- 真实 Excel 表头待提供。