2.5 KiB
2.5 KiB
日志系统文档
概述
本项目实现了统一的后端日志系统,为所有接口提供了详细的日志记录功能,包括请求、响应、错误等状态。
日志系统结构
1. logger.js
- 统一日志管理模块
- 支持多种日志级别:ERROR, WARN, INFO, DEBUG
- 支持控制台和文件双重输出
- 包含HTTP请求专用日志方法
2. 日志文件位置
- 存储在
server/logs/目录 - 按日期命名:
server-YYYY-MM-DD.log - JSON格式便于查询和分析
日志级别
ERROR: 错误和异常情况WARN: 警告和潜在问题INFO: 重要操作和状态信息DEBUG: 详细调试信息
接口日志详情
1. 对话接口 (/api/chat-ui/chat)
- 记录请求代理开始和结束
- 记录目标API响应状态
- 记录代理错误
2. 模型列表接口 (/api/chat-ui/models)
- 记录请求基本信息
- 记录返回的模型数量
3. 对话管理接口 (/api/chat-ui/conversations/*)
- 记录操作类型(获取/创建/删除)
- 记录对话ID
- 记录操作结果
4. 文件上传接口 (/api/chat-ui/upload)
- 记录上传文件信息(名称、大小、类型)
- 记录上传结果和生成的URL
5. 停止生成接口 (/api/chat-ui/stop/*)
- 记录停止请求的ID
- 记录操作结果
6. HTTP通用日志
- 记录所有请求的方法、URL、状态码
- 记录请求耗时
- 记录客户端IP和User-Agent
- 根据状态码自动分类日志级别
使用方法
环境变量
LOG_LEVEL=DEBUG # 设置日志级别,默认为INFO
在代码中使用
const { logger } = require('./logger');
logger.info('Some info message', { additional: 'data' });
logger.error('Error occurred', { error: error.message });
logger.debug('Debug info', { variable: value });
日志示例
HTTP请求日志
{
"timestamp": "2026-03-03T03:26:58.631Z",
"level": "INFO",
"message": "HTTP GET /api/chat-ui/models 200 15ms",
"method": "GET",
"url": "/api/chat-ui/models",
"statusCode": 200,
"duration": "15ms",
"userAgent": "Mozilla/5.0...",
"ip": "::1"
}
特定接口日志
{
"timestamp": "2026-03-03T03:27:12.123Z",
"level": "INFO",
"message": "Successfully uploaded file",
"filename": "1642342342-file.jpg",
"originalName": "file.jpg",
"url": "http://localhost:3000/uploads/1642342342-file.jpg",
"size": 123456
}