|
@@ -19,11 +19,11 @@ package org.apache.dolphinscheduler.api.aspect;
|
|
|
|
|
|
import org.apache.dolphinscheduler.common.Constants;
|
|
|
import org.apache.dolphinscheduler.dao.entity.User;
|
|
|
+import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
import java.util.Set;
|
|
|
import java.util.UUID;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -46,6 +46,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
public class AccessLogAspect {
|
|
|
private static final Logger logger = LoggerFactory.getLogger(AccessLogAspect.class);
|
|
|
|
|
|
+ private static final String TRACE_ID = "traceId";
|
|
|
+
|
|
|
@Pointcut("@annotation(org.apache.dolphinscheduler.api.aspect.AccessLogAnnotation)")
|
|
|
public void logPointCut(){
|
|
|
// Do nothing because of it's a pointcut
|
|
@@ -60,21 +62,24 @@ public class AccessLogAspect {
|
|
|
Method method = sign.getMethod();
|
|
|
AccessLogAnnotation annotation = method.getAnnotation(AccessLogAnnotation.class);
|
|
|
|
|
|
- String tranceId = UUID.randomUUID().toString();
|
|
|
+ String traceId = UUID.randomUUID().toString();
|
|
|
|
|
|
// log request
|
|
|
if (!annotation.ignoreRequest()) {
|
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
|
if (attributes != null) {
|
|
|
HttpServletRequest request = attributes.getRequest();
|
|
|
-
|
|
|
+ String traceIdFromHeader = request.getHeader(TRACE_ID);
|
|
|
+ if (!StringUtils.isEmpty(traceIdFromHeader)) {
|
|
|
+ traceId = traceIdFromHeader;
|
|
|
+ }
|
|
|
// handle login info
|
|
|
String userName = parseLoginInfo(request);
|
|
|
|
|
|
// handle args
|
|
|
String argsString = parseArgs(proceedingJoinPoint, annotation);
|
|
|
- logger.info("REQUEST TRANCE_ID:{}, LOGIN_USER:{}, URI:{}, METHOD:{}, HANDLER:{}, ARGS:{}",
|
|
|
- tranceId,
|
|
|
+ logger.info("REQUEST TRACE_ID:{}, LOGIN_USER:{}, URI:{}, METHOD:{}, HANDLER:{}, ARGS:{}",
|
|
|
+ traceId,
|
|
|
userName,
|
|
|
request.getRequestURI(),
|
|
|
request.getMethod(),
|
|
@@ -88,7 +93,7 @@ public class AccessLogAspect {
|
|
|
|
|
|
// log response
|
|
|
if (!annotation.ignoreResponse()) {
|
|
|
- logger.info("RESPONSE TRANCE_ID:{}, BODY:{}, REQUEST DURATION:{} milliseconds", tranceId, ob, (System.currentTimeMillis() - startTime));
|
|
|
+ logger.info("RESPONSE TRACE_ID:{}, BODY:{}, REQUEST DURATION:{} milliseconds", traceId, ob, (System.currentTimeMillis() - startTime));
|
|
|
}
|
|
|
|
|
|
return ob;
|