From ec716f99f2494076ae48f917df3a94674839e043 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Mon, 3 Jun 2019 09:28:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20druid=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E6=97=A5=E5=BF=97=E5=BC=82=E6=AD=A5=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/me/zhengjie/aspect/LogAspect.java | 16 ++++++++++++++-- .../java/me/zhengjie/service/LogService.java | 4 +++- .../me/zhengjie/service/impl/LogServiceImpl.java | 12 ++---------- .../main/resources/config/application-dev.yml | 2 ++ .../main/resources/config/application-prod.yml | 1 + 5 files changed, 22 insertions(+), 13 deletions(-) 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 7c44831..5ddceec 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 575c806..72854c7 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 5cfc6fc..f2c2230 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 866fc6e..96eeef7 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 f8ad3c0..dfd1d71 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 -- GitLab