Skip to main content

系统日志

接口说明

访问日志配置

设定访问日志记录保留时长,系统每天定时删除超过保留期限的日志记录。

  • GET /api/v1/access-log-config: 取得访问日志配置详细信息
  • PUT /api/v1/access-log-config: 更新保存访问日志配置

访问日志

通过不同的接口将不同业务场景下的访问日志查询区分开,遵循 RESTful 风格,以准确地实现访问权限控制。

  • GET /api/v1/controller-methods: 取得审计对象 REST 控制器及 REST 控制器方法列表
  • GET /api/v1/access-logs: 查询访问日志(系统管理员查询)
  • GET /api/v1/access-logs/{accessLogId}: 取得访问日志详细信息(系统管理员查询)
  • GET /api/v1/tenants/{tenantId}/access-logs: 查询访问日志(租户查询)
  • GET /api/v1/tenants/{tenantId}/access-logs/{accessLogId}: 取得访问日志详细信息(租户查询)
  • GET /api/v1/users/{userId}/access-logs: 查询访问日志(用户查询)
  • GET /api/v1/users/{userId}/access-logs/{accessLogId}: 取得访问日志详细信息(用户查询)

使用方法与业务流程

要记录用户操作,需要为控制器方法添加 @EnableAccessLog 注解。

@Override
@EnableAccessLog // 在需要被记录的方法上添加 @EnableAccessLog 注解
@Operation(summary = "设置电子邮件发送配置")
@PreAuthorize("hasRole('ADMINISTRATOR')")
public void create(@Valid MailConfigurationCreateDTO createDTO) {
mailConfigurationCommandService.create(getOperator(), createDTO);
}

业务逻辑及流程:

  1. 用户请求控制器方法通过 @EnableAccessLog 标注的 REST 接口 R

  2. AccessLogAspect 切面在 R 执行前(@Before)记录请求的开始时间

  3. 执行 R 定义的业务逻辑

  4. AccessLogAspect 切面:

    • R 返回结果后(@AfterReturning 标注的方法)将请求标记为成功

    • R 抛出异常后(@AfterThrowing 标注的方法)将请求标记为失败

  5. AccessLogAspect 切面在 R 结束后(@After 标注的方法)生成用户访问数据,并通过 UserRequestResolvedEventPublisher 事件发布器发布 UserRequestResolvedEvent 事件

  6. 访问日志服务通过 AccessLogCollector 监听 UserRequestResolvedEvent 事件对象

  7. 访问日志服务将 UserRequestResolvedEvent 携带的用户访问数据保存到数据库中

  8. 访问日志服务通过 AccessLogRemoveScheduler 定时清理超时的用户的访问记录

页面示例

访问日志列表页面

access-logs

访问日志详情页面

access-log-detail