系统操作日志
系统操作日志
开发框架目前支持方法调用的日志功能,日志记录保存在系统日志表SECURITY_LOG中。
系统日志功能页面见下图:
1.表设计
日志表设计如下:
示例代码所在位置:
2.配置默认系统代号
在对应环境的security配置文件中添加base.security.system.code配置。
系统代号会在操作日志和登录登出日志中使用。
- 操作日志@Log中当未配置systemCode时,会记录配置的默认系统代号。
- 登录登出日志中直接记录配置的默认系统代号。
配置示例如下:
1
2
#系统代号配置
base.security.system.code=backend-framework-template
3.系统操作日志
开发框架支持方法级别的日志,通过在方法上添加@Log注解即可实现。
3.1.基础用法
1
2
3
4
5
6
7
8
9
10
@Log(value = "新增测试数据")
@Operation(description = "新增数据")
@RequestMapping(value = "/create", method = RequestMethod.POST)
public boolean create(@RequestBody Test test) {
boolean result = myBaseService.save(test);
if (result == false) {
throw new BusinessException("新增记录失败!");
}
return result;
}
@Log的value值为调用此方法时保存的固定日志信息。
当注解只使用value属性时,可以省略value=,只写字符串。写法如下:
@Log(“新增测试数据”)
(注意:注解配置多个属性时value不能省略)
以上写法同:@Log(value = “新增测试数据”)
3.2.完整用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Log(value = "修改测试数据", needRecord = true, systemCode = "templateSystem", module = "日志记录模块")
@Operation(description = "修改数据")
@RequestMapping(value = "/update", method = RequestMethod.POST)
public boolean update(@RequestBody Test test) {
String id = test.getId();
if (StringUtils.isBlank(id)) {
throw new BusinessException("修改记录时id不能为空!");
}
boolean result = myBaseService.updateById(test);
if (result == false) {
throw new BusinessException("修改记录失败!");
}
return result;
}
- @Log的value值为调用此方法时保存的固定日志信息。
- @Log的needRecord值标识是否需要保存方法调用前后的记录信息。needRecord默认值为false,不保存记录。needRecord=true表示保存记录。 当开启了了needReport后,新增、删除和更新操作都需要传数据库实体对象(具有ID主键属性)作为参数,同时mapper文件的命名必须满足框架默认的命名规则,即“实体类的名称Mapper“。因为框架默认会使用实体对象对应Mapper类的selectById方法去查询数据库数据信息。
- @Log的systemCode为系统代号,标识日志属于哪个系统。如果未配置,则记录配置文件的默认系统代号。默认系统代号为对应环境的security配置文件中的base.security.system.code配置。
- @Log的module为日志的自定义模块名称,标识日志属于的系统模块。
以上4个参数可分别单独使用。
3.3.@Log日志模板
@Log的value属性除了支持固定内容,还可以支持日志模板,日志模板中可以使用方法传入的所有参数值。
用法一,value值中配置日志模板:
示例如下:
@Log(“新增用户:#{user.name}”)
public void getUserInfo(User user){
xxx
}
#{}中可以使用方法传入的所有参数值,上例模板中使用的是方法参数值user。
用法二,通过配置文件配置日志模板:
@Log(“${base.security.log.template.user.create}”)
配置文件中配置:
base.security.log.template.user.create=新增用户:#{user.name}
4.登录登出日志
开发框架已经默认保存用户登录和登出系统的操作日志,无需进行额外配置。登录登出日志的系统代号默认使用对应环境的security配置文件中配置的系统代号。
本文由作者按照
CC BY 4.0
进行授权