hi-server/doc/说明文档.md
shanshanzhong f0439f4f80
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m50s
feat(日志): 新增客户端错误日志收集功能
- 创建 log_message 表用于存储客户端错误日志
- 实现客户端日志上报接口 POST /v1/common/log/message/report
- 添加管理端日志查询接口 GET /v1/admin/log/message/error/list 和 GET /v1/admin/log/message/error/detail
- 实现日志指纹去重和限流机制
- 完善相关模型、逻辑和文档说明
2025-12-02 20:12:33 -08:00

2.0 KiB
Raw Blame History

报错日志收集log_message

项目规划

  • 目标:新增 log_message 表与采集/查询接口,用于 APP / PC / Web 客户端错误日志收集与分析。
  • 范围:
    • 创建 MySQL 表与迁移脚本02105
    • 新增客户端上报接口 POST /v1/common/log/message/report
    • 新增管理端查询接口 GET /v1/admin/log/message/error/listGET /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.gogetErrorLogMessageDetailLogic.go
  • 类型:internal/types/types.go 新增请求/响应结构。

进度记录

  • 2025-12-02
    • 完成表与索引创建迁移文件。
    • 完成模型与服务注入。
    • 完成公共上报接口与限流、去重逻辑;编译验证通过。
    • 完成管理端列表与详情接口;编译验证通过。
    • 待办:根据运营需求调整限流阈值与日志保留策略。

接口规范

  • 上报:POST /v1/common/log/message/report
    • 请求platform、appVersion、osName、osVersion、deviceId、level、errorCode、message、stack、context、occurredAt
    • 响应:{ code, msg, data: { id } }
  • 管理端列表: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 条(可配置)。
  • 隐私:避免采集敏感数据;服务端对大字段做长度限制与截断。