源码
https://github.com/HelloSummer5/GlobalLogDemo
传统打日志方式
不够优雅不够美观,会造成许多日志代码冗余
@GetMapping("list")
public Result listUser(){
log.info("======进入Controller=====");
List<User> userList = userService.listUser();
log.info("======userList:{}=====", userList);
return ResponseFactory.build(userList);
}
简介
通常有两层需要加日志:controller层和service层。controller层的日志使用Log打印信息,service层的日志使用数据库记录操作日志。
实现
- pom
<!-- AOP依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
- Controller:
package com.example.demo.controller;
import com.example.demo.common.ResponseFactory;
import com.example.demo.common.Result;
import com.example.demo.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class TestController {
@Autowired
private UserService userService;
@GetMapping("list")
public Result listUser(){
return ResponseFactory.build(userService.listUser());
}
}
- Aspect类
package com.example.demo.common.aspect;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org