全局日志打印
This commit is contained in:
48
src/main/java/com/bao/dating/aspect/LoggingAspect.java
Normal file
48
src/main/java/com/bao/dating/aspect/LoggingAspect.java
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
package com.bao.dating.aspect;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.*;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日志切面
|
||||||
|
* @author KilLze
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class LoggingAspect {
|
||||||
|
@Pointcut("execution(* com.bao.dating.service.impl.*.*(..))")
|
||||||
|
private void pt(){}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 方法执行前执行
|
||||||
|
* @param joinPoint 方法参数
|
||||||
|
*/
|
||||||
|
@Before("pt()")
|
||||||
|
public void logBeforeMethod(JoinPoint joinPoint){
|
||||||
|
// 获取方法名
|
||||||
|
String methodName = joinPoint.getSignature().getName();
|
||||||
|
// 获取参数
|
||||||
|
Object[] args = joinPoint.getArgs();
|
||||||
|
log.info("方法 {} 开始执行,参数: {}", methodName, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 方法执行成功后执行
|
||||||
|
* @param joinPoint 方法参数
|
||||||
|
*/
|
||||||
|
@AfterReturning(pointcut = "pt()", returning = "result")
|
||||||
|
public void logAfterMethod(JoinPoint joinPoint, Object result){
|
||||||
|
String methodName = joinPoint.getSignature().getName();
|
||||||
|
log.info("方法 {} 执行成功,返回值: {}", methodName, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterThrowing(pointcut = "pt()", throwing = "exception")
|
||||||
|
public void logAfterThrowing(JoinPoint joinPoint, Exception exception){
|
||||||
|
String methodName = joinPoint.getSignature().getName();
|
||||||
|
log.error("方法 {} 执行异常", methodName, exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,15 +8,17 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Around;
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
import org.aspectj.lang.reflect.MethodSignature;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录操作日志
|
||||||
|
* @author KilLze
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
package com.bao.dating.aspect;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.aspectj.lang.ProceedingJoinPoint;
|
|
||||||
import org.aspectj.lang.annotation.Around;
|
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 记录方法运行耗时
|
|
||||||
* @author KilLze
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Aspect
|
|
||||||
@Component
|
|
||||||
public class RecordTimeAspect {
|
|
||||||
@Around("execution(* com.bao.dating.service.impl.*.*(..))")
|
|
||||||
public Object recordTime(ProceedingJoinPoint pjp) throws Throwable {
|
|
||||||
//1. 记录方法运行的开始时间
|
|
||||||
long begin = System.currentTimeMillis();
|
|
||||||
|
|
||||||
//2. 执行原始的方法
|
|
||||||
Object result = pjp.proceed();
|
|
||||||
|
|
||||||
//3. 记录方法运行的结束时间, 记录耗时
|
|
||||||
long end = System.currentTimeMillis();
|
|
||||||
log.info("方法 {} 执行耗时: {}ms", pjp.getSignature() ,end-begin);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -52,6 +52,7 @@ public class TokenInterceptor implements HandlerInterceptor {
|
|||||||
if (!JwtUtil.validateToken(token)) {
|
if (!JwtUtil.validateToken(token)) {
|
||||||
log.error("Token无效或已过期");
|
log.error("Token无效或已过期");
|
||||||
response.setStatus(401);
|
response.setStatus(401);
|
||||||
|
response.setContentType("application/json;charset=UTF-8");
|
||||||
response.getWriter().write("Token无效或已过期");
|
response.getWriter().write("Token无效或已过期");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -68,6 +69,7 @@ public class TokenInterceptor implements HandlerInterceptor {
|
|||||||
if (redisToken == null || !redisToken.equals(token)) {
|
if (redisToken == null || !redisToken.equals(token)) {
|
||||||
log.error("登录已失效");
|
log.error("登录已失效");
|
||||||
response.setStatus(401);
|
response.setStatus(401);
|
||||||
|
response.setContentType("application/json;charset=UTF-8");
|
||||||
response.getWriter().write("登录已失效");
|
response.getWriter().write("登录已失效");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user