系统日志
系统日志用于追踪后台登录、业务操作、接口访问和接口异常。RuoYi Office 将日志分为 System 与 Infra 两个模块:登录日志、操作日志归属系统管理;API 访问日志、API 错误日志归属基础设施。管理端统一在日志相关页面挂载“系统日志”说明,便于排查权限、审计和异常问题。
本地实现位置
| 日志类型 | PC 页面 | 后端 Controller |
|---|---|---|
| 登录日志 | views/system/loginlog | LoginLogController.java |
| 操作日志 | views/system/operatelog | OperateLogController.java |
| API 访问日志 | views/infra/apiAccessLog | ApiAccessLogController.java |
| API 错误日志 | views/infra/apiErrorLog | ApiErrorLogController.java |
日志分类
| 日志 | 记录重点 | 常用动作 |
|---|---|---|
| 登录日志 | 登录类型、账号、结果、IP、UserAgent、时间 | 查询、查看详情、导出 |
| 操作日志 | 操作人、业务类型、业务编号、动作、请求信息、扩展内容 | 查询、查看详情、导出 |
| API 访问日志 | 应用名、接口、参数、响应、耗时、结果码 | 查询、查看详情、导出 |
| API 错误日志 | 异常类、异常消息、堆栈、处理状态、处理人 | 查询、查看详情、标记已处理/已忽略、导出 |
登录日志
登录日志由认证链路写入,例如账号密码登录、手机号登录、三方登录、登出和强制下线。管理端页面调用:
| 操作 | 接口 | 权限标识 |
|---|---|---|
| 分页查询 | GET /system/login-log/page | 页面查询使用 |
| 查看详情 | GET /system/login-log/get | 页面查询使用 |
| 导出 Excel | GET /system/login-log/export-excel | system:login-log:export |
筛选时常用用户名、登录结果、用户 IP 和创建时间。登录日志适合排查“用户是否真正登录成功”“登录失败原因是否集中”“某个 IP 是否频繁尝试登录”等问题。
操作日志
操作日志用于记录业务动作。后端 Controller 或 Service 中配置操作日志注解后,会把操作类型、子类型、业务编号、动作描述、请求信息和操作人写入日志表。
| 操作 | 接口 | 权限标识 |
|---|---|---|
| 分页查询 | GET /system/operate-log/page | 页面查询使用 |
| 查看详情 | GET /system/operate-log/get | 页面查询使用 |
| 导出 Excel | GET /system/operate-log/export-excel | system:operate-log:export |
OperateLogController 在分页和导出时使用翻译能力补充展示字段,例如操作人名称。导出文件名为 操作日志.xls。
API 访问日志
API 访问日志记录每次接口访问的入口信息,包括 traceId、应用名、请求 URL、请求方法、请求参数、响应体、耗时和结果码。
| 操作 | 接口 | 权限标识 |
|---|---|---|
| 分页查询 | GET /infra/api-access-log/page | infra:api-access-log:query |
| 查看详情 | GET /infra/api-access-log/get | infra:api-access-log:query |
| 导出 Excel | GET /infra/api-access-log/export-excel | infra:api-access-log:export |
如果某些高频轮询接口不需要记录,可以在后端使用 @ApiAccessLog(enable = false) 关闭记录,减少噪音和存储压力。
API 错误日志
API 错误日志记录接口异常现场,包括异常类名、异常消息、根因、堆栈、异常文件、方法和行号。页面支持将待处理异常标记为“已处理”或“已忽略”。
| 操作 | 接口 | 权限标识 |
|---|---|---|
| 分页查询 | GET /infra/api-error-log/page | infra:api-error-log:query |
| 查看详情 | GET /infra/api-error-log/get | infra:api-error-log:query |
| 更新状态 | PUT /infra/api-error-log/update-status | infra:api-error-log:update-status |
| 导出 Excel | GET /infra/api-error-log/export-excel | infra:api-error-log:export |
处理错误日志时,建议先按 traceId 串联访问日志、后端应用日志和用户操作,再决定标记为已处理或已忽略。
排查建议
- 先用 traceId 串联请求:API 访问日志、错误日志和后端日志通常都能通过 traceId 对齐。
- 登录问题先查登录日志:登录日志能快速区分账号密码错误、验证码问题、三方登录问题和主动登出。
- 业务争议查操作日志:涉及删除、修改、审批等动作时,优先查看操作日志的用户、动作和业务编号。
- 异常闭环要更新处理状态:API 错误日志处理后及时标记,避免待办长期堆积。
排查清单
| 现象 | 排查方向 |
|---|---|
| 日志页面没有数据 | 检查菜单权限、筛选条件、当前租户和日志记录开关 |
| API 访问日志过多 | 检查高频轮询接口是否需要 @ApiAccessLog(enable = false) |
| 错误日志没有堆栈 | 检查异常捕获链路是否被业务代码提前吞掉 |
| 导出失败 | 检查导出权限、数据量和浏览器下载拦截 |
| IP 不符合预期 | 检查网关或反向代理真实 IP 透传配置 |
