From 2e9445b29ed394328aec3900dd0c0a72dc7753d6 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 21 May 2018 17:24:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/framework/aspectj/LogAspect.java | 238 +++++++++--------- 1 file changed, 126 insertions(+), 112 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 20da65867..442696f9e 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -36,128 +36,142 @@ import com.ruoyi.project.system.user.domain.User; @Aspect @Component @EnableAsync -public class LogAspect { - private static final Logger log = LoggerFactory.getLogger(LogAspect.class); +public class LogAspect +{ + private static final Logger log = LoggerFactory.getLogger(LogAspect.class); - @Autowired - private IOperLogService operLogService; + @Autowired + private IOperLogService operLogService; - // 配置织入点 - @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)") - public void logPointCut() { - } + // 配置织入点 + @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)") + public void logPointCut() + { + } - /** - * 前置通知 用于拦截操作 - * - * @param joinPoint - * 切点 - */ - @AfterReturning(pointcut = "logPointCut()") - public void doBefore(JoinPoint joinPoint) { - handleLog(joinPoint, null); - } + /** + * 前置通知 用于拦截操作 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "logPointCut()") + public void doBefore(JoinPoint joinPoint) + { + handleLog(joinPoint, null); + } - /** - * 拦截异常操作 - * - * @param joinPoint - * @param e - */ - @AfterThrowing(value = "logPointCut()", throwing = "e") - public void doAfter(JoinPoint joinPoint, Exception e) { - handleLog(joinPoint, e); - } + /** + * 拦截异常操作 + * + * @param joinPoint + * @param e + */ + @AfterThrowing(value = "logPointCut()", throwing = "e") + public void doAfter(JoinPoint joinPoint, Exception e) + { + handleLog(joinPoint, e); + } - @Async - private void handleLog(final JoinPoint joinPoint, final Exception e) { - try { - // 获得注解 - Log controllerLog = getAnnotationLog(joinPoint); - if (controllerLog == null) { - return; - } + @Async + private void handleLog(final JoinPoint joinPoint, final Exception e) + { + try + { + // 获得注解 + Log controllerLog = getAnnotationLog(joinPoint); + if (controllerLog == null) + { + return; + } - // 获取当前的用户 - User currentUser = ShiroUtils.getUser(); + // 获取当前的用户 + User currentUser = ShiroUtils.getUser(); - // *========数据库日志=========*// - OperLog operLog = new OperLog(); - operLog.setStatus(UserConstants.NORMAL); - // 请求的地址 - String ip = ShiroUtils.getIp(); - operLog.setOperIp(ip); - operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); - if (currentUser != null) { - operLog.setLoginName(currentUser.getLoginName()); - operLog.setDeptName(currentUser.getDept().getDeptName()); - } + // *========数据库日志=========*// + OperLog operLog = new OperLog(); + operLog.setStatus(UserConstants.NORMAL); + // 请求的地址 + String ip = ShiroUtils.getIp(); + operLog.setOperIp(ip); + operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); + if (currentUser != null) + { + operLog.setLoginName(currentUser.getLoginName()); + operLog.setDeptName(currentUser.getDept().getDeptName()); + } - if (e != null) { - operLog.setStatus(UserConstants.EXCEPTION); - operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); - } - // 设置方法名称 - String className = joinPoint.getTarget().getClass().getName(); - String methodName = joinPoint.getSignature().getName(); - operLog.setMethod(className + "." + methodName + "()"); - // 处理设置注解上的参数 - getControllerMethodDescription(controllerLog, operLog); - // 保存数据库 - operLogService.insertOperlog(operLog); - } catch (Exception exp) { - // 记录本地异常日志 - log.error("==前置通知异常=="); - log.error("异常信息:{}", exp.getMessage()); - exp.printStackTrace(); - } - } + if (e != null) + { + operLog.setStatus(UserConstants.EXCEPTION); + operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); + } + // 设置方法名称 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + operLog.setMethod(className + "." + methodName + "()"); + // 处理设置注解上的参数 + getControllerMethodDescription(controllerLog, operLog); + // 保存数据库 + operLogService.insertOperlog(operLog); + } + catch (Exception exp) + { + // 记录本地异常日志 + log.error("==前置通知异常=="); + log.error("异常信息:{}", exp.getMessage()); + exp.printStackTrace(); + } + } - /** - * 获取注解中对方法的描述信息 用于Controller层注解 - * - * @param joinPoint - * 切点 - * @return 方法描述 - * @throws Exception - */ - public void getControllerMethodDescription(Log log, OperLog operLog) throws Exception { - // 设置action动作 - operLog.setAction(log.action()); - // 设置标题 - operLog.setTitle(log.title()); - // 设置channel - operLog.setChannel(log.channel()); - // 是否需要保存request,参数和值 - if (log.isSaveRequestData()) { - // 获取参数的信息,传入到数据库中。 - setRequestValue(operLog); - } - } + /** + * 获取注解中对方法的描述信息 用于Controller层注解 + * + * @param joinPoint 切点 + * @return 方法描述 + * @throws Exception + */ + public void getControllerMethodDescription(Log log, OperLog operLog) throws Exception + { + // 设置action动作 + operLog.setAction(log.action()); + // 设置标题 + operLog.setTitle(log.title()); + // 设置channel + operLog.setChannel(log.channel()); + // 是否需要保存request,参数和值 + if (log.isSaveRequestData()) + { + // 获取参数的信息,传入到数据库中。 + setRequestValue(operLog); + } + } - /** - * 获取请求的参数,放到log中 - * - * @param operLog - * @param request - */ - private void setRequestValue(OperLog operLog) { - Map map = ServletUtils.getRequest().getParameterMap(); - String params = JSONObject.toJSONString(map); - operLog.setOperParam(StringUtils.substring(params, 0, 255)); - } + /** + * 获取请求的参数,放到log中 + * + * @param operLog + * @param request + */ + private void setRequestValue(OperLog operLog) + { + Map map = ServletUtils.getRequest().getParameterMap(); + String params = JSONObject.toJSONString(map); + operLog.setOperParam(StringUtils.substring(params, 0, 255)); + } - /** - * 是否存在注解,如果存在就获取 - */ - private Log getAnnotationLog(JoinPoint joinPoint) throws Exception { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); + /** + * 是否存在注解,如果存在就获取 + */ + private Log getAnnotationLog(JoinPoint joinPoint) throws Exception + { + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method method = methodSignature.getMethod(); - if (method != null) { - return method.getAnnotation(Log.class); - } - return null; - } + if (method != null) + { + return method.getAnnotation(Log.class); + } + return null; + } }