diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/AutoLogAspect.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/AutoLogAspect.java index e07c9d4..adc5715 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/AutoLogAspect.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/AutoLogAspect.java @@ -2,6 +2,7 @@ package org.jeecg.common.aspect; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.PropertyFilter; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; @@ -39,6 +40,7 @@ import java.util.Date; * @email jeecgos@163.com * @Date 2018年1月14日 */ +@Slf4j @Aspect @Component public class AutoLogAspect { @@ -66,51 +68,54 @@ public class AutoLogAspect { } private void saveSysLog(ProceedingJoinPoint joinPoint, long time, Object obj) { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); + try { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); - LogDTO dto = new LogDTO(); - AutoLog syslog = method.getAnnotation(AutoLog.class); - if(syslog != null){ - //update-begin-author:taoyan date: - String content = syslog.value(); - if(syslog.module()== ModuleType.ONLINE){ - content = getOnlineLogContent(obj, content); + LogDTO dto = new LogDTO(); + AutoLog syslog = method.getAnnotation(AutoLog.class); + if(syslog != null){ + //update-begin-author:taoyan date: + String content = syslog.value(); + if(syslog.module()== ModuleType.ONLINE){ + content = getOnlineLogContent(obj, content); + } + //注解上的描述,操作日志内容 + dto.setLogType(syslog.logType()); + dto.setLogContent(content); } - //注解上的描述,操作日志内容 - dto.setLogType(syslog.logType()); - dto.setLogContent(content); + + //请求的方法名 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = signature.getName(); + dto.setMethod(className + "." + methodName + "()"); + + + //设置操作类型 + if (CommonConstant.LOG_TYPE_2 == dto.getLogType()) { + dto.setOperateType(getOperateType(methodName, syslog.operateType())); + } + + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //请求的参数 + dto.setRequestParam(getReqestParams(request,joinPoint)); + //设置IP地址 + dto.setIp(IpUtils.getIpAddr(request)); + //获取登录用户信息 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser!=null){ + dto.setUserid(sysUser.getUsername()); + dto.setUsername(sysUser.getRealname()); + } + //耗时 + dto.setCostTime(time); + dto.setCreateTime(new Date()); + //保存系统日志 + baseCommonService.addLog(dto); + } catch (Exception e) { + log.warn("【系统日志-操作日志切面】记录操作日志异常,不影响业务执行, method: {}, error: {}", joinPoint.getSignature().toShortString(), e.getMessage()); } - - //请求的方法名 - String className = joinPoint.getTarget().getClass().getName(); - String methodName = signature.getName(); - dto.setMethod(className + "." + methodName + "()"); - - - //设置操作类型 - if (CommonConstant.LOG_TYPE_2 == dto.getLogType()) { - dto.setOperateType(getOperateType(methodName, syslog.operateType())); - } - - //获取request - HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); - //请求的参数 - dto.setRequestParam(getReqestParams(request,joinPoint)); - //设置IP地址 - dto.setIp(IpUtils.getIpAddr(request)); - //获取登录用户信息 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(sysUser!=null){ - dto.setUserid(sysUser.getUsername()); - dto.setUsername(sysUser.getRealname()); - - } - //耗时 - dto.setCostTime(time); - dto.setCreateTime(new Date()); - //保存系统日志 - baseCommonService.addLog(dto); }