操作日志
一句话:谁在什么时候对什么做了什么的审计台账。后端对被标注的写操作(增删改、导入导出、登录登出之外的业务动作)自动记一条,本页负责查与导出。只读。
功能在哪
- 菜单路径:系统管理 → 审计日志 → 操作日志
- 地址栏路由:
/system/log/operate-log - 主要权限:
system:operate-log:query(看/详情)、system:operate-log:export(导出)

界面认识
| 区域 | 作用 | 常用操作 |
|---|---|---|
| 查询区 | 操作人(下拉可输入过滤)/ 操作模块 / 操作名 / 操作内容 / 操作时间 / 业务编号 | 「搜索」「重置」 |
| 工具条 | 「导出」按当前查询条件下载 操作日志.xls | 导出前有「是否确认导出数据项?」确认 |
| 列表 | 序号 / 日志编号 / 操作人 / 操作模块 / 操作名 / 操作内容 / 操作时间 / 业务编号 / 操作 IP | 行内「详情」 |
「操作模块 / 操作名 / 业务编号」是排查的三个抓手
- 操作模块:功能域(如「用户管理」);
- 操作名:动作(如「新增用户」);
- 业务编号:被操作的那条数据的 ID——从业务页面抄 ID 过来反查「这条数据被谁改过」最快。
常用操作
查一条数据的变更历史
- 查询区「业务编号」填数据 ID(如用户编号),「搜索」;
- 列表按时间倒序列出所有涉及该编号的操作;
- 行内「详情」看完整上下文。
看详情:排障要的四样东西
详情弹窗除基本信息外,还有:
| 字段 | 排障用途 |
|---|---|
| 链路追踪(traceId) | 拿它去后端日志里 grep,能串起这次请求的全部服务端日志 |
| 操作拓展参数 | 请求的入参快照(改前改后的值都在里面) |
| 请求 URL | 方法 + 地址,确认前端调的是哪个接口 |
| 操作人 IP / UA | 判断操作来源(办公网还是外网、什么浏览器) |

导出留档
点「导出」→ 确认 → 下载 Excel。按当前查询条件导出:先缩小时间范围与模块再导,避免一次拉全量。
字段说明
| 字段 | 含义 |
|---|---|
| 操作人 / 操作人编号 | 发起操作的用户(详情里另有 IP 与 UA) |
| 操作内容 | 一句话摘要(如「新增用户:张三」) |
| 操作时间 | 服务端记录时间 |
| 业务编号 | 被操作数据的 ID;部分操作无业务编号则为空 |
只读且自动产生
本页没有新增/修改/删除:日志由后端在接口执行时写入,界面只负责查。删日志属于数据保留策略范畴,不在界面能力内。
视角对照
| 视角 | 看到什么 |
|---|---|
超管 admin / 租户管理员 docadmin | 本租户全部操作日志 |
无 system:operate-log:query 的角色 | 无此菜单;审计能力只给到管理员 |
进阶
常见问题
Q:为什么某个操作没有日志? A:操作日志靠后端注解声明,未标注的接口不记。读操作(查询)默认不记;若某写操作查不到,说明它没被标注,属开发侧补注解的范畴。
Q:「操作内容」和实际改动对不上? A:详情里的「操作拓展参数」是入参快照,以它为准;列表摘要只是给人看的一句话。
Q:能用它恢复误删的数据吗? A:不能直接恢复。但详情的入参快照里有删除前的关键字段,可作为手工恢复的依据。
Q:日志会永久保存吗? A:界面不提供清理;保留周期由运维侧的数据保留策略决定。需要长期留档请定期「导出」。
Q:traceId 拿去后端日志搜不到? A:确认搜的是同一时间窗的日志文件,且后端日志级别没把该请求的日志过滤掉;日志已轮转归档时需到归档文件里搜。
