需求:
记录当前 tlias 智能学习辅助系统中所有员工的登录操作,无论登录成功还是失败,都需要记录日志。日志信息包含如下信息:
用户名 (登录时,输入的用户名) ----- 【提示:用户名在原始方法执行时的参数中】
密码 (登录时,输入的密码) -------- 【提示:密码在原始方法执行时的参数中】
操作时间 (什么时间,员工登录的)
登录是否成功 ------ 【提示:密码在原始方法执行后的返回值中】
登录成功后,下发的jwt令牌 ------ 【提示:密码在原始方法执行后的返回值中】
登录操作耗时
提示:
获取到原始方法运行的参数,也是可以根据实际情况强转的。 比如:
//获取方法参数
Object[] args = proceedingJoinPoint.getArgs();
Emp emp = (Emp)args[0];
原始方法运行的结果虽然是Object,但是我们可以根据实际切入点表达式匹配的方法, 根据情况来进行强转的 ,比如:
//调用原始方法
Object obj = proceedingJoinPoint.proceed();
//获取登录结果,是否成功
Result result = (Result) obj;
表结构:
在tlias系统的数据库 tlias 中,创建如下表结构。
-- 登录日志表
create table emp_login_log(
id int unsigned primary key auto_increment comment 'ID',
username varchar(20) comment '用户名',
password varchar(32) comment '密码',
login_time datetime comment '登录时间',
is_success tinyint unsigned comment '是否成功, 1:成功, 0:失败',
jwt varchar(1000) comment 'JWT令牌',
cost_time bigint unsigned comment '耗时, 单位:ms'
) comment '登录日志表';
实体类:
package com.itheima.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmpLoginLog {
private Integer id; //ID
private String username; //登录用户名
private String password; //登录密码
private LocalDateTime loginTime; //登录时间
private Short isSuccess; //是否登录成功, 1:成功, 0:失败
private String jwt; //成功后, 下发的JWT令牌
private Long costTime; //登录耗时, 单位:ms
}
最终,员工在登录页面执行登录操作,输入的信息,登录成功还是失败,如果成功了,下发的jwt令牌是什么,全部都需要记录到数据库表中。 最终表中存储的数据样例如下:
需求:
记录当前tlias智能学习辅助系统中文件上传操作的日志。日志信息包含如下信息:
原始文件名 【提示: 从文件上传的方法的运行参数中获取】
文件大小,单位:字节【提示: 从文件上传的方法的运行参数中获取】
文件拓展名, 如:.jpg【提示: 从文件上传的方法的运行参数中获取】
文件上传时间
阿里云OSS中文件访问的url【提示: 从文件上传的方法的运行返回值中获取】
提示:
获取上传文件的原始名称: multipartfile.getOriginalFilename();
获取上传文件的大小: multipartfile.getSize()
表结构:
在tlias系统的数据库 tlias 中,创建如下表结构。
-- 文件上传日志表
create table file_upload_log(
id int unsigned primary key auto_increment comment 'ID',
filename varchar(100) comment '原始文件名',
size bigint comment '文件大小, 单位:字节',
extname varchar(10) comment '文件后缀名,如:.jpg',
url varchar(300) comment '阿里云OSS访问url',
upload_time datetime comment '上传时间'
) comment '文件上传日志表';
实体类:
package com.itheima.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileUploadLog {
private Integer id; //ID
private String filename; //原始文件名
private Long size; //文件大小, 单位:字节
private String extname; //文件拓展名, 如:.jpg
private String url; //阿里云OSS文件url
private LocalDateTime uploadTime; //文件上传时间
}
最终,员工在进行文件上传操作时,需要记录文件的详细信息到 file_upload_log 表中 。 最终表中存储的数据样例如下: