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
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 处日志调用 |
关键成果
-
✅ 新日志配置模块
- 彩色输出(开发环境)
- 结构化日志(生产环境)
- 自动日志轮转
- 第三方库日志控制
-
✅ 核心模块迁移
- 数据库连接日志
- 缓存操作日志
- HTTP 请求日志
-
✅ 文档完善
阶段 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
相关文档
下一步行动
立即执行
- 继续阶段 2: 迁移服务层(5 个文件)
- 测试验证: 确保核心模块迁移无问题
建议
- 每完成一个阶段,运行相关测试
- 每天提交一次代码,便于回滚
- 遇到问题及时记录和讨论
最后更新: 2026-01-29
负责人: [待指定]