diff --git a/eladmin-logging/src/main/java/me/zhengjie/aspect/LogAspect.java b/eladmin-logging/src/main/java/me/zhengjie/aspect/LogAspect.java index 7c448316332da5b8b66e03cc7f822c2200954f6f..5ddceec9f530a015a803a5a8c3f74c9ef7ac515f 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/aspect/LogAspect.java +++ b/eladmin-logging/src/main/java/me/zhengjie/aspect/LogAspect.java @@ -4,6 +4,8 @@ import lombok.extern.slf4j.Slf4j; import me.zhengjie.domain.Log; import me.zhengjie.exception.BadRequestException; import me.zhengjie.service.LogService; +import me.zhengjie.utils.RequestHolder; +import me.zhengjie.utils.SecurityUtils; import me.zhengjie.utils.ThrowableUtil; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; @@ -14,6 +16,8 @@ import org.aspectj.lang.annotation.Pointcut; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.servlet.http.HttpServletRequest; + /** * @author jie * @date 2018-11-24 @@ -47,7 +51,7 @@ public class LogAspect { currentTime = System.currentTimeMillis(); result = joinPoint.proceed(); Log log = new Log("INFO",System.currentTimeMillis() - currentTime); - logService.save(joinPoint, log); + logService.save(getUsername(), RequestHolder.getHttpServletRequest(),joinPoint, log); return result; } @@ -61,6 +65,14 @@ public class LogAspect { public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { Log log = new Log("ERROR",System.currentTimeMillis() - currentTime); log.setExceptionDetail(ThrowableUtil.getStackTrace(e)); - logService.save((ProceedingJoinPoint)joinPoint, log); + logService.save(getUsername(), RequestHolder.getHttpServletRequest(), (ProceedingJoinPoint)joinPoint, log); + } + + public String getUsername() { + try { + return SecurityUtils.getUsername(); + }catch (Exception e){ + return ""; + } } } diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/LogService.java b/eladmin-logging/src/main/java/me/zhengjie/service/LogService.java index 575c8064904e011063104b9e86a8a921cedbaf13..72854c79cbe562f18e66a0d776f17411841cb54b 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/LogService.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/LogService.java @@ -4,6 +4,8 @@ import me.zhengjie.domain.Log; import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.scheduling.annotation.Async; +import javax.servlet.http.HttpServletRequest; + /** * @author jie * @date 2018-11-24 @@ -16,7 +18,7 @@ public interface LogService { * @param log */ @Async - void save(ProceedingJoinPoint joinPoint, Log log); + void save(String username, HttpServletRequest request, ProceedingJoinPoint joinPoint, Log log); /** * 查询异常详情 diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java index 5cfc6fc1c7e8846b7ce91537f4799e9f2795b3a0..f2c2230e095750d4884d397123875584c946e648 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java @@ -5,7 +5,6 @@ import cn.hutool.json.JSONObject; import me.zhengjie.domain.Log; import me.zhengjie.repository.LogRepository; import me.zhengjie.service.LogService; -import me.zhengjie.utils.RequestHolder; import me.zhengjie.utils.SecurityUtils; import me.zhengjie.utils.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; @@ -32,10 +31,8 @@ public class LogServiceImpl implements LogService { @Override @Transactional(rollbackFor = Exception.class) - public void save(ProceedingJoinPoint joinPoint, Log log){ + public void save(String username, HttpServletRequest request, ProceedingJoinPoint joinPoint, Log log){ - // 获取request - HttpServletRequest request = RequestHolder.getHttpServletRequest(); MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); me.zhengjie.aop.log.Log aopLog = method.getAnnotation(me.zhengjie.aop.log.Log.class); @@ -53,9 +50,6 @@ public class LogServiceImpl implements LogService { Object[] argValues = joinPoint.getArgs(); //参数名称 String[] argNames = ((MethodSignature)joinPoint.getSignature()).getParameterNames(); - // 用户名 - String username = ""; - if(argValues != null){ for (int i = 0; i < argValues.length; i++) { params += " " + argNames[i] + ": " + argValues[i]; @@ -65,9 +59,7 @@ public class LogServiceImpl implements LogService { // 获取IP地址 log.setRequestIp(StringUtils.getIP(request)); - if(!LOGINPATH.equals(signature.getName())){ - username = SecurityUtils.getUsername(); - } else { + if(LOGINPATH.equals(signature.getName())){ try { JSONObject jsonObject = new JSONObject(argValues[0]); username = jsonObject.get("username").toString(); diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index 866fc6e1fa59cf4b875b6b66f0cbf995bb2a911c..96eeef7898550456142d4e4ed098f78bdec56d09 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -23,6 +23,8 @@ spring: test-while-idle: true test-on-borrow: false test-on-return: false + + validation-query: select 1 # 配置监控统计拦截的filters filters: stat stat-view-servlet: diff --git a/eladmin-system/src/main/resources/config/application-prod.yml b/eladmin-system/src/main/resources/config/application-prod.yml index f8ad3c0c797746c39e8f4231e920411a2075edd5..dfd1d7169b3d50e0aa65991fc1de86426a17f8a4 100644 --- a/eladmin-system/src/main/resources/config/application-prod.yml +++ b/eladmin-system/src/main/resources/config/application-prod.yml @@ -23,6 +23,7 @@ spring: test-while-idle: true test-on-borrow: false test-on-return: false + validation-query: select 1 # 配置监控统计拦截的filters filters: stat