43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# 报错日志收集(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 条(可配置)。
|
||
- 隐私:避免采集敏感数据;服务端对大字段做长度限制与截断。
|