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.
4.1 KiB
4.1 KiB
Changelog: 日志系统迁移 - 阶段 3(API + 仓储层)
日期: 2026-01-29
类型: 重构
影响范围: API 层 + 仓储层(4个文件)
关联: RFC 201
变更概述
完成日志系统迁移的阶段 3,将 4 个 API 和仓储层文件从 loguru 迁移到 Python 标准库 logging。
迁移文件清单
1. api/v1/recharge.py
- 日志调用数: 2 处
- 变更内容:
- 导入:
from loguru import logger→from app.core.logging import get_logger - 初始化: 添加
logger = get_logger(__name__) - 错误日志添加
exc_info=True - 保持中文日志消息
- 导入:
2. api/v1/attachments.py
- 日志调用数: 0 处(仅导入)
- 变更内容:
- 导入:
from loguru import logger→from app.core.logging import get_logger - 初始化: 添加
logger = get_logger(__name__) - 为未来日志调用做准备
- 导入:
3. repositories/recharge_repository.py
- 日志调用数: 6 处
- 变更内容:
- 导入:
from loguru import logger→from app.core.logging import get_logger - 初始化: 添加
logger = get_logger(__name__) - 所有日志调用改用 %-formatting
- 保持中文日志消息
- 导入:
4. repositories/attachment_repository.py
- 日志调用数: 6 处
- 变更内容:
- 导入:
from loguru import logger→from app.core.logging import get_logger - 初始化: 添加
logger = get_logger(__name__) - 所有日志调用改用 %-formatting
- 保持中文日志消息
- 导入:
技术细节
日志格式化示例
Before (loguru):
logger.info(f"创建充值订单: {order.order_no}, 用户: {order.user_id}, 金额: {order.amount}")
logger.warning(f"发现 {len(orphan_orders)} 个孤儿充值订单")
logger.error(f"微信支付回调处理异常: {str(e)}")
After (标准库 logging):
logger.info("创建充值订单: %s, 用户: %s, 金额: %s", order.order_no, order.user_id, order.amount)
logger.warning("发现 %d 个孤儿充值订单", len(orphan_orders))
logger.error("微信支付回调处理异常: %s", str(e), exc_info=True)
关键改进
- API 层日志: 支付回调异常处理添加完整堆栈跟踪
- 仓储层日志: 数据库操作日志保持中文,便于运维排查
- 模块级 logger: 使用
__name__自动获取模块路径
验证结果
语法检查
✅ api/v1/recharge.py - No diagnostics found
✅ api/v1/attachments.py - No diagnostics found
✅ repositories/recharge_repository.py - No diagnostics found
✅ repositories/attachment_repository.py - No diagnostics found
残留 loguru 引用
$ rg "from loguru import logger" --type py
# 剩余 10 个文件(符合预期:14 - 4 = 10)
# 5 个任务层文件 + 5 个迁移脚本文件
影响评估
功能影响
- ✅ 无功能变更
- ✅ API 响应格式保持一致
- ✅ 数据库操作日志完整
- ✅ 异常堆栈记录完整
性能影响
- 标准库 logging 性能略优于 loguru
- API 层日志开销降低
后续步骤
阶段 4: 任务层(5 个文件)
app/tasks/ai_tasks.pyapp/tasks/export_tasks.pyapp/tasks/maintenance_tasks.pyapp/tasks/recharge_tasks.pyapp/tasks/sms_tasks.py
阶段 5: 迁移脚本(5 个文件)
app/migrations/001_uuid_migration.pyapp/migrations/002_folder_enhancement.pyapp/migrations/003_project_tables.pyapp/migrations/010_recharge_service_tables.pyapp/migrations/011_sms_service_tables.py
阶段 6: 清理验证
- 移除
requirements.txt中的loguru==0.7.2 - 全局验证无残留引用
- 更新相关文档
相关文档
- RFC 201: 日志系统迁移技术方案
- 阶段 1 Changelog:
2026-01-29-logging-migration-phase1-core-modules.md - 阶段 2 Changelog:
2026-01-29-logging-migration-phase2-services.md - 迁移进度跟踪:
LOGGING_MIGRATION_PROGRESS.md
团队协作
- 执行人: AI Assistant
- 审核人: 待指定
- 测试人: 待指定
- 预计完成时间: 2026-01-29(已完成)
状态: ✅ 已完成
验证: ✅ 通过
文档: ✅ 已更新
进度: 13/23 文件 (57%)