Spring Boot 自定义注解,实现 API 请求日志切面
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class ApiLogAspect {
private static final Logger LOGGER = LoggerFactory.getLogger(ApiLogAspect.class);
@Pointcut("@annotation(com.yourpackage.LogApiRequest)")
public void logApiRequest() {
}
@Before("logApiRequest()")
public void doBefore(JoinPoint joinPoint) {
// 在此处编写请求日志的逻辑
LOGGER.info("API请求:{}", joinPoint.getSignature().toShortString());
}
@AfterReturning(pointcut = "logApiRequest()", returning = "result")
public void doAfterReturning(Object result) {
// 在此处编写响应日志的逻辑
LOGGER.info("API响应:{}", result);
}
}
这个示例代码展示了如何创建一个简单的日志切面来记录API请求和响应。LogApiRequest
是一个自定义注解,用于标记需要记录日志的API方法。在doBefore
方法中,我们记录了请求的方法签名。在doAfterReturning
方法中,我们记录了方法的返回结果。这个例子使用了SLF4J作为日志门面,并且使用了AspectJ来定义切面和切点。
评论已关闭