# 日志优化指南 ## 优化概述 本次优化旨在减少项目启动和运行时的日志输出,只保留必要的关键操作日志,提高日志可读性。 ## 主要优化内容 ### 1. 日志格式简化 - **原格式**: `%(asctime)s - %(name)s - %(levelname)s - %(funcName)s:%(lineno)d - %(message)s` - **新格式**: `%(asctime)s - %(levelname)s - %(message)s` - 移除了函数名和行号信息,使日志更简洁 ### 2. 日志级别调整 - **控制台输出**: 从 `INFO` 提升到 `WARNING` - 只显示警告、错误和关键操作 - 减少常规信息输出 - **文件输出**: 保持 `INFO` 级别 - 文件中仍然记录详细信息,便于调试 ### 3. 关键操作日志保留 以下关键操作仍会在控制台显示: #### JWT令牌管理 - 🔄 JWT令牌刷新 - ✅ JWT令牌刷新成功 - ⚠️ JWT令牌即将过期提醒 - 🔑 申请匿名访问令牌 #### API请求处理 - 📤 发送请求到Warp API - ✅ 请求完成和响应信息 - 📤 处理API请求(包括模型信息) - ✅ SSE流完成 #### 服务器状态 - 🚀 服务器启动 - 🌐 服务器监听端口 - 📍 API端点和文档界面地址 - ✅ JWT token有效性状态 ### 4. DEBUG日志降级 以下日志从 `INFO` 降级为 `DEBUG`(不在控制台显示): - 详细的请求/响应数据 - SSE事件的详细内容 - WebSocket连接数变化 - 编码/解码的字节数统计 - 流式会话的详细信息 - HTTP请求重试信息 ### 5. 移除的冗余日志 完全移除了以下冗余输出: - SSE事件的逐个打印 - 数据包的hex dump - 详细的事件数据内容 - 重复的分隔线和统计信息 ## 使用说明 ### 查看详细日志 如需查看详细日志,可以: 1. 查看日志文件:`logs/` 目录下的日志文件包含 INFO 级别的详细信息 2. 临时调整日志级别:修改 [`common/logging.py`](../common/logging.py:25) 中的 `console_level` 参数 ### 恢复原始设置 如需恢复原始的详细日志输出: ```python # common/logging.py console_level: int = logging.INFO, # 改回 INFO ``` ## 优化效果 ### 优化前 - 启动时输出大量详细信息 - 每个请求都有多行日志 - SSE事件逐个显示详情 - 控制台被大量日志占满 ### 优化后 - 启动时只显示关键信息 - 请求只显示简要状态 - 只保留必要的操作日志 - 控制台清晰简洁 ## 相关文件 优化涉及的主要文件: - [`common/logging.py`](../common/logging.py) - 日志配置 - [`warp2protobuf/core/auth.py`](../warp2protobuf/core/auth.py) - JWT相关日志 - [`warp2protobuf/warp/api_client.py`](../warp2protobuf/warp/api_client.py) - API请求日志 - [`server.py`](../server.py) - 服务器启动日志 - [`warp2protobuf/api/protobuf_routes.py`](../warp2protobuf/api/protobuf_routes.py) - 路由处理日志 - [`protobuf2openai/`](../protobuf2openai/) - OpenAI兼容层日志