@aspect注解_Springboot⾃定义注解⽅式实现⽇志记录,这
种开发⽅式你⽤过吗
⼤家好,我是程序员7歌!
今天我将为⼤家讲解如何通过⾃定义注解记录接⼝访问⽇志。⼀般的开发中,有两种⽅式可以记录⽇志信息,第⼀种:把接⼝⽇志信息保存
到⽇志⽂件中,第⼆种:把接⼝操作⽇志保存到数据库中,这⾥我将为⼤家讲解第⼆种⽅式。
创建⽇志表
在数据库新增⽇志记录表,字段我们可以⾃定义,其中有⼏个必要字段,如下:
type:请求类型
title:操作记录(⽇志标题)
remote_addr:操作IP地址
username:操作⼈
request_uri:接⼝地址
fastjson怎么用http_method:接⼝类型
class_method:请求的接⼝⽅法
params:请求参数数据
session_id:⽤户session
以下就是数据库表结构:
DROP TABLE IF EXISTS `sys_log`;CREATE TABLE `sys_log` ( `id` bigint(50) NOT NULL AUTO_INCREMENT COMMENT '编号', `type` varchar(20) COLLATE ut
使⽤⾃动⽣成代码⼯具⽣成SysLog类的信息:
SysLog/SysLogController/SysLogService/SysLogServiceImpl/l,结构如下图:
⾃定义⽇志注解
在项⽬中新增⾃定义注解,⽤于注解哪些接⼝需要记录操作⽇志,代码如下:
package com.july.annotation;import java.lang.annotation.*;/** * 系统⽇志注解 * @author zqk * @since 2019/12/5 */@Target(ElementType.METHOD)@Retention(R 在定义⼀个Aspect切⾯类,⾥⾯可以定义切⼊点和通知,核⼼代码如下:
package com.july.aspect;import com.alibaba.fastjson.JSONObject;import ity.SysLog;import com.july.service.SysLogService;import com.july.uti
切⾯类⾥⾯设计到⼏个⼯具类:
1. ToolUtil=>getClientIp(获取客户端ip信息)
2. ToolUtilgetAddressByIP:解析IP信息(调⽤第三⽅接⼝)
编程接⼝类
在项⽬⾥⾯新增测试接⼝类,在需要记录⽇志的接⼝上⾯添加注解@SysLog,如下代码:
package ller;import com.july.annotation.SysLog;import com.july.dto.UserLoginDto;import com.july.dto.UserRedisDto;import ity.U
接下来我们启动项⽬,项⽬启动成功后,访问登录接⼝,如下图:
等接⼝响应成功后,我们打开数据库去sys_log表⾥⾯查看记录信息,记录信息如下:
从数据库记录我们得知,接⼝调⽤的全部信息,这样以来也⽅便开发⼈员排查操作记录。对于上⾯的⾃定义注解记录操作⽇志,⼤家觉得怎
么样啊?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。