Skip to content

操作日志

操作日志用于安全审计,自动记录用户在系统中的所有重要操作。

设计原理

系统利用 NestJS 的 Interceptor(拦截器) 捕获被 @Action 装饰器标记的请求,自动记录操作信息。

自动记录的内容

字段说明
操作名称@Action 装饰器指定
操作人当前登录用户
请求参数请求体或查询参数
请求方法GET / POST / PATCH / DELETE
请求路径API 路径
IP 地址客户端 IP
执行耗时毫秒
操作状态成功/失败
错误信息失败时的异常信息

使用方法

在 Controller 的方法上添加 @Action 装饰器:

typescript
@Post()
@Action('新增模板') // 自动记录操作名称、参数、IP、耗时等
async create(@Body() createDto: CreateDto) {
  return this.tempService.create(createDto);
}

装饰器接收一个字符串参数作为操作描述,系统会自动获取请求上下文信息。

日志管理

在「操作日志」页面可以:

  • 按时间范围、操作人、操作类型筛选日志
  • 查看日志详情(包含完整的请求参数和响应)
  • 按操作状态筛选(成功/失败)

API 接口

方法路径说明
GET/sys/sys-action-log获取操作日志列表
GET/sys/sys-action-log/:id获取日志详情