# mp-log-service **Repository Path**: cbscode/mp-log-service ## Basic Information - **Project Name**: mp-log-service - **Description**: 微信小程序日志服务 - 提供 WebSocket 实时日志传输和 HTTP API 查询接口 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-22 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MP Log Service 微信小程序日志服务 - 提供 WebSocket 实时日志传输和 HTTP API 查询接口 ## 功能特性 - ✅ WebSocket 实时日志传输 - ✅ HTTP RESTful API 查询历史日志 - ✅ 内存存储(可扩展 Redis) - ✅ CLI 启动脚本 - ✅ Docker 部署支持 - ✅ 多租户支持(多个 appId) ## 安装 ```bash npm install -g mp-log-service ``` ## 快速开始 ### 1. 启动服务 ```bash # 默认端口 9527 mp-log-service # 自定义端口 mp-log-service --port 8080 # 自定义最大日志数 mp-log-service --max-logs 20000 ``` ### 2. 查看日志 ```bash # 查询所有日志 curl http://localhost:9527/api/logs # 按 appId 查询 curl http://localhost:9527/api/logs?appId=wx123456 # 按日志级别查询 curl http://localhost:9527/api/logs?level=error # 按时间范围查询 curl http://localhost:9527/api/logs?startTime=2024-01-01&endTime=2024-01-02 ``` ### 3. 清空日志 ```bash # 清空所有日志 curl -X DELETE http://localhost:9527/api/logs # 清空特定 appId 的日志 curl -X DELETE http://localhost:9527/api/logs?appId=wx123456 ``` ## API 文档 ### WebSocket 接口 **连接地址**: `ws://localhost:9527` **消息格式**: ```json { "type": "log", "data": { "appId": "wx123456", "level": "info", "message": "用户登录成功", "timestamp": "2024-01-01T12:00:00.000Z", "meta": {} } } ``` ### HTTP 接口 #### GET /health 健康检查接口 **响应示例**: ```json { "status": "ok", "uptime": 3600, "connections": 5, "totalLogs": 1234 } ``` #### GET /api/logs 查询日志 **查询参数**: - `appId` (可选): 小程序 ID - `level` (可选): 日志级别(log/info/warn/error) - `startTime` (可选): 开始时间(ISO 8601) - `endTime` (可选): 结束时间(ISO 8601) - `page` (可选): 页码(默认 1) - `size` (可选): 每页大小(默认 50,最大 100) - `format` (可选): 输出格式(`json` 或 `text`,默认 `json`) **JSON 格式响应示例**(默认): ```json { "total": 100, "page": 1, "size": 50, "logs": [ { "id": "log-123", "appId": "wx123456", "level": "info", "message": "用户登录成功", "timestamp": "2024-01-01T12:00:00.000Z", "meta": {} } ] } ``` **Text 格式响应示例**(类似浏览器控制台): ``` [2024-01-01T12:00:00.000Z] [INFO ] [wx123456] 用户登录成功 [2024-01-01T12:00:01.000Z] [ERROR] [wx789] 请求失败 URL: /api/test Method: GET Status: 500 ``` **使用示例**: ```bash # 默认 JSON 格式 curl http://localhost:9527/api/logs # 使用 text 格式(类似浏览器控制台) curl http://localhost:9527/api/logs?format=text # 组合查询参数 curl "http://localhost:9527/api/logs?level=error&format=text" ``` #### DELETE /api/logs 清空日志 **查询参数**: - `appId` (可选): 小程序 ID(不传则清空所有) **响应示例**: ```json { "success": true, "deleted": 100 } ``` ## Docker 部署 ```bash # 构建镜像 docker build -t mp-log-service:latest . # 运行容器 docker run -d -p 9527:9527 --name log-service mp-log-service:latest # 使用 docker-compose docker-compose up -d ``` ## 配置选项 | 参数 | 默认值 | 说明 | |------|--------|------| | `--port` | 9527 | 服务端口 | | `--max-logs` | 10000 | 最大日志数量 | ## 开发 ```bash # 安装依赖 npm install # 运行测试 npm test # 运行测试(监听模式) npm run test:watch # 测试覆盖率 npm run test:coverage ``` ## 许可证 MIT