Thanks to visit codestin.com
Credit goes to github.com

Skip to content

refactor(logger): 将 decision json 文件按日期子目录存放 #114

@xqliu

Description

@xqliu

当前状态

❌ 需要改进

目前 decision json 文件直接存放在 trader 目录下(如 decision_logs/{trader_id}/),文件命名格式为 decision_YYYYMMDD_HHMMSS_cycleN.json

问题: 随着运行时间增长,单个目录下文件数量会急剧膨胀。例如当前某个 trader 目录下已有 6937 个文件,导致:

  • 文件系统性能下降(列出/查找文件变慢)
  • 难以手动浏览和管理
  • 某些文件系统对单目录文件数有限制

建议改进

将 decision json 文件按日期存放到子目录:

# 当前结构
decision_logs/{trader_id}/
  decision_20251109_034815_cycle1.json
  decision_20251109_035119_cycle2.json
  decision_20251110_120000_cycle1.json
  ...

# 改进后结构
decision_logs/{trader_id}/
  2025-11-09/
    decision_20251109_034815_cycle1.json
    decision_20251109_035119_cycle2.json
  2025-11-10/
    decision_20251110_120000_cycle1.json

实现要点

  1. 写入逻辑LogDecision() 在写入前自动创建日期子目录
  2. 读取逻辑:更新 LoadDecision() 和查询相关方法,支持从子目录读取
  3. 兼容性:需要兼容旧格式(直接在 trader 目录下的文件)
  4. 回测存储:同步更新 backtest/storage.go 中的相关逻辑
  5. 外部脚本:同步更新 ../prompts/analyze_trades.py 中的目录扫描逻辑

验收标准

  • 新生成的 decision 文件存放在日期子目录
  • 能正确读取旧格式(不在子目录)的文件
  • 能正确读取新格式(在子目录)的文件
  • 回测功能正常工作
  • 单元测试覆盖新旧格式兼容
  • analyze_trades.py 脚本能正确扫描新旧两种目录结构

相关文件

  • logger/decision_logger.go:202 - 文件写入逻辑
  • logger/decision_logger.go:340 - 文件查询逻辑
  • backtest/storage.go:402 - 回测读取逻辑
  • ../prompts/analyze_trades.py:332 - 外部分析脚本的目录扫描逻辑

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions