|
|
@@ -14,6 +14,8 @@ import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
+import org.slf4j.MDC;
|
|
|
+
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.lang.reflect.Parameter;
|
|
|
@@ -21,6 +23,7 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.UUID;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
|
|
|
@@ -40,8 +43,13 @@ public class WebLogAspect {
|
|
|
@Before("webLog()")
|
|
|
public void doBefore(JoinPoint joinPoint) {
|
|
|
HttpServletRequest request = ServletUtils.getRequest();
|
|
|
+ String traceId = Objects.requireNonNull(request).getHeader("X-Trace-Id");
|
|
|
+ if (!StringUtils.hasText(traceId)) {
|
|
|
+ traceId = UUID.randomUUID().toString().replace("-", "");
|
|
|
+ }
|
|
|
+ MDC.put("traceId", traceId);
|
|
|
long currentTimeMillis = System.currentTimeMillis();
|
|
|
- String requestURI = Objects.requireNonNull(request).getRequestURI();
|
|
|
+ String requestURI = request.getRequestURI();
|
|
|
RequestNoContext.callTime.set(currentTimeMillis);
|
|
|
RequestNoContext.apiUrl.set(requestURI);
|
|
|
RequestNoContext.currentThreadId.set(currentTimeMillis);
|
|
|
@@ -64,6 +72,7 @@ public class WebLogAspect {
|
|
|
long costTime = System.currentTimeMillis() - RequestNoContext.callTime.get();
|
|
|
logger.info("\n--------------[{}]返回内容开始----------------\n 接口地址:{}\n 返回内容:{}\n 请求耗时:{}ms\n--------------[{}]返回内容结束----------------", RequestNoContext.currentThreadId.get(), RequestNoContext.apiUrl.get(), JSONUtil.toJsonStr(returns), costTime, RequestNoContext.currentThreadId.get());
|
|
|
RequestNoContext.remove();
|
|
|
+ MDC.remove("traceId");
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -73,6 +82,7 @@ public class WebLogAspect {
|
|
|
long costTime = System.currentTimeMillis() - RequestNoContext.callTime.get();
|
|
|
logger.error("\n--------------[{}]返回内容开始----------------\n 接口地址:{}\n 请求令牌:{}\n 接口参数:{}\n 请求失败:{}\n 请求耗时:{}ms\n--------------[{}]返回内容结束----------------", RequestNoContext.currentThreadId.get(), RequestNoContext.apiUrl.get(), Objects.requireNonNull(request).getHeader("Authorization"), RequestNoContext.requestParam.get(), e.getMessage(), costTime, RequestNoContext.currentThreadId.get());
|
|
|
RequestNoContext.remove();
|
|
|
+ MDC.remove("traceId");
|
|
|
}
|
|
|
|
|
|
/**
|