Commit 18a27186 authored by xiaoguang.xu's avatar xiaoguang.xu

fix : 提升logAspect使用体验...

parent 4590ca42
package cn.quantgroup.xyqb.aspect.logcaller; package cn.quantgroup.xyqb.aspect.logcaller;
import cn.quantgroup.xyqb.util.IPUtil; import cn.quantgroup.xyqb.util.IPUtil;
import com.google.common.base.Stopwatch;
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;
...@@ -14,7 +15,7 @@ import org.springframework.web.context.request.RequestContextHolder; ...@@ -14,7 +15,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Objects; import java.util.concurrent.TimeUnit;
/** /**
* 调用者记录 * 调用者记录
...@@ -34,17 +35,23 @@ public class LogCallHttpAspect { ...@@ -34,17 +35,23 @@ public class LogCallHttpAspect {
@Around("logHttpCaller()") @Around("logHttpCaller()")
public Object record(ProceedingJoinPoint pjp) throws Throwable { public Object record(ProceedingJoinPoint pjp) throws Throwable {
Object result = pjp.proceed(); Stopwatch stopwatch = Stopwatch.createStarted();
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (Objects.nonNull(attrs)) {
try {
HttpServletRequest request = attrs.getRequest(); HttpServletRequest request = attrs.getRequest();
String remoteIP = IPUtil.getRemoteIP(request); String remoteIP = IPUtil.getRemoteIP(request);
Object[] args = pjp.getArgs(); Object[] args = pjp.getArgs();
LOGGER.info("http api is called,from IP:[{}],args:[{}]", remoteIP, args); boolean hasException = false;
} catch (Exception e) { Object result;
LOGGER.error("打印http请求日志出错", e); try {
} result = pjp.proceed();
} catch (Throwable e) {
hasException = true;
throw e;
} finally {
Stopwatch stop = stopwatch.stop();
long elapsed = stop.elapsed(TimeUnit.MILLISECONDS);
LOGGER.info("[httpRequestLog],url:[{}],remoteIP:[{}],args:[{}],duration:[{}],exception:[{}]",
request.getRequestURL(), remoteIP, args, elapsed, hasException);
} }
return result; return result;
} }
......
...@@ -14,6 +14,7 @@ import cn.quantgroup.xyqb.service.user.IUserService; ...@@ -14,6 +14,7 @@ import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.IPUtil; import cn.quantgroup.xyqb.util.IPUtil;
import cn.quantgroup.xyqb.util.MqUtils; import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.ValidationUtil; import cn.quantgroup.xyqb.util.ValidationUtil;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -63,6 +64,7 @@ public class AppController implements IBaseController { ...@@ -63,6 +64,7 @@ public class AppController implements IBaseController {
@IpValidator @IpValidator
@RequestMapping("/login") @RequestMapping("/login")
@ApiOperation(value = "/login", notes = "App登陆")
public JsonResult login( public JsonResult login(
String phoneNo, String phoneNo,
String idNo, String name, String key, String idNo, String name, String key,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment