操作日志的记录
因为我们不光要记录代码的运行,如(logback log4j),而且还应该记录用户的行为(Controller 请求日志),这叫做业务运行日志。
业务运行日志的作用
- 记录用户的行为 用于后续的分析
- 记录用户的所有的操作
日志实现的思路
1.我们需要记录哪些数据(谁在什么时间干了什么事情,结果如何)? 数据要存入到哪里(存储到数据库表,推送到指定日志存储服务,打印到日志文件等)?
2.在项目中什么位置记录(一般在Controller请求,进行around 环绕增强)
如何实现记录功能
实现方式:注解+AOP
Aop日志记录 具体代码实现
aop的使用流程,这里使用注解式aop来实现
具体步骤:
- 设置切入点
- 可以切在方法上
- 可以切在注解上
@Transactional 事务注解 注解加在类上 aop 切在注解上
- 写增强 日志记录增强
- 获取日志的相关信息用户的id ip地址, 时间, 操作的描述, 类型等信息
- 将日志对象 添加到指定服务(文件,数据库,系统)
但是,操作的描述如何获取呢?
使用自定义注解:
-
在 目标 方法上添加自定义注解 (@Logger) 如下
-
在增强中获取注解(@Logger)的属性获取
具体实现
依赖引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>