# 报错日志收集(log_message) ## 项目规划 - 目标:新增 `log_message` 表与采集/查询接口,用于 APP / PC / Web 客户端错误日志收集与分析。 - 范围: - 创建 MySQL 表与迁移脚本(02105)。 - 新增客户端上报接口 `POST /v1/common/log/message/report`。 - 新增管理端查询接口 `GET /v1/admin/log/message/error/list` 与 `GET /v1/admin/log/message/error/detail`。 ## 实施方案 - 表结构:见 `initialize/migrate/database/02120_log_message.up.sql`。 - 模型:`internal/model/logmessage/`(实体、默认 CRUD、筛选)。 - 路由:在 `internal/handler/routes.go` 注册公共与管理端路由。 - 逻辑: - 上报逻辑:`internal/logic/common/logMessageReportLogic.go`(限流、指纹去重、入库)。 - 管理查询:`internal/logic/admin/log/getErrorLogMessageListLogic.go`、`getErrorLogMessageDetailLogic.go`。 - 类型:`internal/types/types.go` 新增请求/响应结构。 - 安全:详细加解密逻辑见 [加解密说明文档.md](file:///Users/Apple/vpn/ppanel-server/doc/加解密说明文档.md)。 ## 进度记录 - 2025-12-02: - 完成表与索引创建迁移文件。 - 完成模型与服务注入。 - 完成公共上报接口与限流、去重逻辑;编译验证通过。 - 完成管理端列表与详情接口;编译验证通过。 - 待办:根据运营需求调整限流阈值与日志保留策略。 - 2026-01-08: - 完成「项目加解密使用说明」文档编写,涵盖 AES-256-CBC 实现及中间件逻辑。 ## 接口规范 - 上报:`POST /v1/common/log/message/report`(详见 `doc/api/log_message_report.md`) - 管理端列表:`GET /v1/admin/log/message/error/list` - 筛选:platform、level、user_id、device_id、error_code、keyword、start、end;分页:page、size - 响应:`{ total, list }` - 管理端详情:`GET /v1/admin/log/message/error/detail?id=...` - 响应:完整字段 ## 保留策略与安全 - 限流:按设备/IP 每分钟 120 条(可配置)。 - 隐私:避免采集敏感数据;服务端对大字段做长度限制与截断。