--- title: 审计日志 | 操作追踪与合规记录 - MengStack官方文档 --- # 审计日志 审计日志模块自动记录系统中的关键操作,支持多维筛选和分页查询,满足合规审计需求。 ## 数据模型 ```go type AuditLog struct { ID uint // 自增主键 TenantID string // 租户 ID UserID uint // 操作人 ID Action string // 操作类型(create / update / delete / login 等) Resource string // 资源类型(user / role / tenant 等) ResourceID string // 资源 ID Detail string // 操作详情(JSON 格式) IP string // 操作人 IP 地址 CreatedAt time.Time // 操作时间 } ``` ## 记录时机 审计日志在以下场景自动写入: | 场景 | Action | Resource | |------|--------|----------| | 用户注册 | `create` | `user` | | 用户登录 | `login` | `auth` | | 修改密码 | `update` | `user` | | 创建角色 | `create` | `role` | | 删除角色 | `delete` | `role` | | 分配角色 | `assign` | `user_role` | | 创建租户 | `create` | `tenant` | | 修改配置 | `update` | `setting` | ## 查询方式 支持按用户、操作类型、资源类型筛选,并支持分页: ```bash # 查询所有审计日志 curl http://localhost:2222/api/v1/audit/logs \ -H "Authorization: Bearer " \ -H "X-Tenant-ID: " # 按用户筛选 curl "http://localhost:2222/api/v1/audit/logs?user_id=1" \ -H "Authorization: Bearer " \ -H "X-Tenant-ID: " # 按操作类型筛选 + 分页 curl "http://localhost:2222/api/v1/audit/logs?action=delete&page=1&page_size=10" \ -H "Authorization: Bearer " \ -H "X-Tenant-ID: " ``` ## 响应格式 ```json { "code": 0, "message": "success", "data": { "items": [ { "id": 1, "tenant_id": "550e8400-...", "user_id": 1, "action": "create", "resource": "role", "resource_id": "5", "detail": "{\"name\":\"editor\"}", "ip": "192.168.1.100", "created_at": "2026-10-03T10:00:00+08:00" } ], "total": 42, "page": 1 } } ``` ## 安全特性 - 审计日志按 `tenant_id` 严格隔离,租户只能查看自己的日志 - 日志记录不可修改、不可删除(只写不删) - IP 地址从请求上下文中自动提取 ## API 端点 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/v1/audit/logs` | 分页查询审计日志 | 详细接口参数见 [审计日志 API 参考](/api/audit)。