Skip to content

liuchengyin01/LogDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

SpringBoot + AOP 实现一个日志记录插件

通过自定义注解作为切入点,实现一个方法调用的日志记录。 通过包扫描作为切入点,实现一个异常日志记录。

将日志做成一个插件包,即引入即用

只需引入pom依赖,实现插件所提供两个Service接口即可使用。 提供一个记录正常调用方法和异常调用的Service接口,具体实现由你来决定,你可以将日志记录到MySQL,也可以记录到Redis,总之由你决定。

日志属性如下

请求参数JSON字符串、请求头参数、请求方法名、请求URI、请求IP等... 你需要什么日志字段,clone进行改造即可。

Maven打包到本地仓库 - 具体操作可见百度

// clean install
mvn clean install
// 打包到本地仓库的完整命令,可根据自己需要进行调整
mvn install:install-file -Dfile=target/log-api-1.0.0.jar -DgroupId=pers.liuchengyin.log -DartifactId=log-api -Dversion=1.0.0 -Dpackaging=jar

其他地方引入插件 - 以我的打包命令为例

<dependency>
    <groupId>pers.liuchengyin.log</groupId>
    <artifactId>log-api</artifactId>
    <version>1.0.0</version>
</dependency>

其他地方引入之后需实现接口

// 正常操作日志接口
@Component  // 一定要交给Spring管理
public class LogInfoWriteServiceImpl implements OperationLogService {
    @Override
    public void recordOperateLog(OperationLog operationLog) {
        System.out.println(operationLog);
        // 这里再调用一个存储数据库的service即可
        System.out.println("正在记录数据库日志 - 正常");
    }
}

// 异常日志接口
@Component  // 一定要交给Spring管理
public class ExceptionLogServiceImpl implements ExceptionLogService {
    @Override
    public void recordExceptionLog(ExceptionLog exceptionLog) {
        // 这里再调用一个存储数据库的service即可
        System.out.println("正在记录数据库日志 - 异常");
    }
}
@RequestMapping("/two/test")
@RestController
public class TestTwoController {
    @GetMapping("/info")
    @OperateLog(operateModule = "用户管理", operateType = "GET", operateDesc = "获取用户")
    public Response<User> info(String name, Integer age){
        User user = new User(1L, name,"女", age);
        return new Response<User>(true,"查询成功",user);
    }
}

欢迎访问我的CSDN博客:https://blog.csdn.net/qq_40885085

About

SpringBoot + AOP 实现一个日志记录插件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages