Просмотр исходного кода

[C端][修改]:添加api计时

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
7f814a9d52
3 измененных файлов: 29 добавлений и 13 удалений
  1. +1
    -1
      mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java
  2. +27
    -11
      mallinkCApi/src/main/java/com/iformall/interceptor/WebLogAspect.java
  3. +1
    -1
      mallinkCApi/src/main/resources/application-dev.yml

+ 1
- 1
mallinkCApi/src/main/java/com/iformall/interceptor/HttpServletRequestWrapperFilter.java Просмотреть файл

@@ -28,7 +28,7 @@ public class HttpServletRequestWrapperFilter implements Filter {
} else {
chain.doFilter(requestWrapper, response);
}
logger.debug("doFilter end" + (System.currentTimeMillis()- start));
logger.debug("doFilter end: " + (System.currentTimeMillis()- start) + "ms");
}

@Override


+ 27
- 11
mallinkCApi/src/main/java/com/iformall/interceptor/WebLogAspect.java Просмотреть файл

@@ -1,5 +1,7 @@
package com.iformall.interceptor;

import com.iformall.utils.IPUtil;
import lombok.Data;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
@@ -19,7 +21,16 @@ import java.util.Arrays;
public class WebLogAspect {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

ThreadLocal<Long> startTime = new ThreadLocal<>();
@Data
private class MethodInfo {
Long startTime;
String url;
String ip;
String method;
String classMethod;
}

ThreadLocal<MethodInfo> startInfo = new ThreadLocal<>();


@Pointcut("execution(public * com.iformall.controller..*.*(..))")
@@ -28,18 +39,17 @@ public class WebLogAspect {
@Before("webLog()")
public void doBefore(JoinPoint joinPoint) throws Throwable {
logger.debug("aspect start");
startTime.set(System.currentTimeMillis());

// 接收到请求,记录请求内容
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();

// 记录下请求内容
logger.info("URL : " + request.getRequestURL().toString());
logger.info("HTTP_METHOD : " + request.getMethod());
logger.info("IP : " + request.getRemoteAddr());
logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs()));
MethodInfo info = new MethodInfo();
info.setUrl(request.getRequestURL().toString());
info.setStartTime(System.currentTimeMillis());
info.setIp(IPUtil.getIpAddr(request));
info.setMethod(request.getMethod());
info.setClassMethod(joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
startInfo.set(info);
logger.debug("aspect start ...");
}

@@ -47,8 +57,14 @@ public class WebLogAspect {
public void doAfterReturning(Object ret) throws Throwable {
logger.debug("aspect after");
// 处理完请求,返回内容
logger.info("RESPONSE : " + ret);
logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get()));
MethodInfo info = startInfo.get();
StringBuilder sb = new StringBuilder();
sb.append("URL: ").append(info.getUrl())
.append(", METHOD: ").append(info.getMethod())
.append(", DO: ").append(info.getClassMethod())
.append(", IP: ").append(info.getIp())
.append(", SPEND TIME: ").append(System.currentTimeMillis() -info.getStartTime()).append("ms");
logger.info(sb.toString());
logger.debug("aspect after ..");
}



+ 1
- 1
mallinkCApi/src/main/resources/application-dev.yml Просмотреть файл

@@ -64,5 +64,5 @@ fm:
logging:
level:
tk.mybatis: debug
com.iformall.mapper: debug
com.iformall: debug
path: ./logs/c

Загрузка…
Отмена
Сохранить