import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.jboss.logging.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
/**
* 用于将请求的项目名设置到日志中
* @author wanlf
*
*/
@Component
@Aspect
public class MDCAop {
@Pointcut("execution(* com.xxx..controller..*(..))")
public void controller() {
}
@Before("controller")
public void beforeController(JoinPoint joinPoint) {
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
if (method.isAnnotationPresent(RequestMapping.class)
|| method.isAnnotationPresent(PostMapping.class)
|| method.isAnnotationPresent(PutMapping.class)
|| method.isAnnotationPresent(DeleteMapping.class)
|| method.isAnnotationPresent(GetMapping.class)) {
ServletRequestAttributes sra = (ServletRequestAttributes)
(RequestContextHolder.getRequestAttributes());
HttpServletRequest request = sra.getRequest();
String custId = request.getHeader("x-projectName");
if (custId != null) {
custId = custId.replaceAll("\\s", "");
if (custId.length() > 0) {
MDC.put("projectName", custId);
return;
}
}
MDC.remove("custId");
}
}
}
将请求的项目名设置到日志中
最新推荐文章于 2022-04-03 15:06:18 发布