系统日志
接口说明
访问日志配置
设定访问日志记录保留时长,系统每天定时删除超过保留期限的日志记录。
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);
}
业务逻辑及流程:
用户请求控制器方法通过
@EnableAccessLog
标注的 REST 接口R
AccessLogAspect
切面在R
执行前(@Before
)记录请求的开始时间执行
R
定义的业务逻辑AccessLogAspect
切面:在
R
返回结果后(@AfterReturning
标注的方法)将请求标记为成功在
R
抛出异常后(@AfterThrowing
标注的方法)将请求标记为失败
AccessLogAspect
切面在R
结束后(@After
标注的方法)生成用户访问数据,并通过UserRequestResolvedEventPublisher
事件发布器发布UserRequestResolvedEvent
事件访问日志服务通过
AccessLogCollector
监听UserRequestResolvedEvent
事件对象访问日志服务将
UserRequestResolvedEvent
携带的用户访问数据保存到数据库中访问日志服务通过
AccessLogRemoveScheduler
定时清理超时的用户的访问记录
页面示例
访问日志列表页面
访问日志详情页面