You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

6.7 KiB

日志系统迁移进度跟踪

最后更新: 2026-01-29
当前状态: 阶段 1 完成


总体进度

[████████░░░░░░░░░░░░] 36% (4/11 小时)

✅ 阶段 1: 核心模块 (4/4 文件) - 完成
⏳ 阶段 2: 服务层 (0/5 文件) - 待执行
⏳ 阶段 3: API + 仓储层 (0/4 文件) - 待执行
⏳ 阶段 4: 任务层 (0/5 文件) - 待执行
⏳ 阶段 5: 迁移脚本 (0/6 文件) - 待执行
⏳ 阶段 6: 清理验证 - 待执行

阶段 1: 核心模块 完成

完成时间: 2026-01-29
耗时: 约 2 小时

已迁移文件

文件 状态 变更类型 备注
app/core/logging.py 完全重写 新增彩色输出、结构化日志
app/core/database.py 日志替换 3 处日志调用
app/core/cache.py 日志替换 3 处日志调用
app/middleware/logging.py 日志替换 4 处日志调用

关键成果

  1. 新日志配置模块

    • 彩色输出(开发环境)
    • 结构化日志(生产环境)
    • 自动日志轮转
    • 第三方库日志控制
  2. 核心模块迁移

    • 数据库连接日志
    • 缓存操作日志
    • HTTP 请求日志
  3. 文档完善


阶段 2: 服务层 待执行

预计时间: 3 小时
优先级: 高

待迁移文件

文件 行数 日志调用数 复杂度
app/services/payment_service.py ~100 8
app/services/payment/wechat_payment.py ~80 6
app/services/payment/alipay_payment.py ~80 6
app/services/recharge_service.py ~350 15
app/services/attachment_service.py ~400 10

迁移模式

# Before
from loguru import logger
logger.info(f"创建订单: order_no={order_no}, amount={amount}")
logger.error(f"创建失败: {str(e)}")

# After
import logging
logger = logging.getLogger(__name__)
logger.info("创建订单: order_no=%s, amount=%s", order_no, amount)
logger.error("创建失败", exc_info=True)

执行步骤

# 1. 备份文件
cp server/app/services/payment_service.py server/app/services/payment_service.py.bak
cp server/app/services/payment/wechat_payment.py server/app/services/payment/wechat_payment.py.bak
cp server/app/services/payment/alipay_payment.py server/app/services/payment/alipay_payment.py.bak
cp server/app/services/recharge_service.py server/app/services/recharge_service.py.bak
cp server/app/services/attachment_service.py server/app/services/attachment_service.py.bak

# 2. 执行迁移(手动或脚本)
# 替换导入语句
# 替换日志调用

# 3. 验证语法
docker exec jointo-server-app python -m py_compile app/services/payment_service.py
docker exec jointo-server-app python -m py_compile app/services/payment/wechat_payment.py
docker exec jointo-server-app python -m py_compile app/services/payment/alipay_payment.py
docker exec jointo-server-app python -m py_compile app/services/recharge_service.py
docker exec jointo-server-app python -m py_compile app/services/attachment_service.py

# 4. 运行测试
docker exec jointo-server-app pytest tests/unit/test_payment_service.py -v
docker exec jointo-server-app pytest tests/unit/test_recharge_service.py -v

阶段 3: API + 仓储层 待执行

预计时间: 2 小时
优先级: 中

待迁移文件

文件 行数 日志调用数
app/api/v1/recharge.py ~150 5
app/api/v1/attachments.py ~150 5
app/repositories/recharge_repository.py ~200 8
app/repositories/attachment_repository.py ~200 8

阶段 4: 任务层 待执行

预计时间: 2 小时
优先级: 中

待迁移文件

文件 行数 日志调用数
app/tasks/ai_tasks.py ~100 6
app/tasks/export_tasks.py ~100 6
app/tasks/maintenance_tasks.py ~100 6
app/tasks/recharge_tasks.py ~100 6
app/tasks/sms_tasks.py ~100 6

阶段 5: 迁移脚本 待执行

预计时间: 1 小时
优先级: 低

待迁移文件

文件 行数 日志调用数
app/migrations/001_uuid_migration.py ~150 8
app/migrations/002_folder_enhancement.py ~150 8
app/migrations/003_project_tables.py ~150 8
app/migrations/010_recharge_service_tables.py ~150 8
app/migrations/011_sms_service_tables.py ~150 8

阶段 6: 清理验证 待执行

预计时间: 1 小时
优先级: 最高

任务清单

  • requirements.txt 移除 loguru==0.7.2
  • 全局搜索确认无 loguru 残留
  • 运行完整测试套件
  • 验证日志文件生成和轮转
  • 验证彩色输出
  • 性能测试
  • 更新相关文档
  • 删除所有 .bak 备份文件

快速命令

检查进度

# 搜索残留的 loguru 引用
grep -r "from loguru import" server/app/ | wc -l
grep -r "import loguru" server/app/ | wc -l

# 应该显示:
# 阶段 1 完成后: 19 个文件
# 阶段 2 完成后: 14 个文件
# 阶段 3 完成后: 10 个文件
# 阶段 4 完成后: 5 个文件
# 阶段 5 完成后: 0 个文件

验证日志系统

# 测试新日志系统
docker exec jointo-server-app python -c "
from app.core.logging import get_logger
logger = get_logger('test')
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')
"

# 检查日志文件
docker exec jointo-server-app ls -lh logs/
docker exec jointo-server-app tail -20 logs/app.log

回滚(如需要)

# 恢复阶段 1 的备份
mv server/app/core/logging.py.bak server/app/core/logging.py
mv server/app/core/database.py.bak server/app/core/database.py
mv server/app/core/cache.py.bak server/app/core/cache.py
mv server/app/middleware/logging.py.bak server/app/middleware/logging.py

# 重启容器
docker-compose -f server/docker-compose.yml restart app

相关文档


下一步行动

立即执行

  1. 继续阶段 2: 迁移服务层(5 个文件)
  2. 测试验证: 确保核心模块迁移无问题

建议

  • 每完成一个阶段,运行相关测试
  • 每天提交一次代码,便于回滚
  • 遇到问题及时记录和讨论

最后更新: 2026-01-29
负责人: [待指定]