格式化

pull/3/head
RuoYi 2018-05-21 17:24:16 +08:00
parent 7886e2bb9a
commit 2e9445b29e
1 changed files with 126 additions and 112 deletions

View File

@ -36,128 +36,142 @@ import com.ruoyi.project.system.user.domain.User;
@Aspect @Aspect
@Component @Component
@EnableAsync @EnableAsync
public class LogAspect { public class LogAspect
private static final Logger log = LoggerFactory.getLogger(LogAspect.class); {
private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
@Autowired @Autowired
private IOperLogService operLogService; private IOperLogService operLogService;
// 配置织入点 // 配置织入点
@Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)") @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)")
public void logPointCut() { public void logPointCut()
} {
}
/** /**
* *
* *
* @param joinPoint * @param joinPoint
* */
*/ @AfterReturning(pointcut = "logPointCut()")
@AfterReturning(pointcut = "logPointCut()") public void doBefore(JoinPoint joinPoint)
public void doBefore(JoinPoint joinPoint) { {
handleLog(joinPoint, null); handleLog(joinPoint, null);
} }
/** /**
* *
* *
* @param joinPoint * @param joinPoint
* @param e * @param e
*/ */
@AfterThrowing(value = "logPointCut()", throwing = "e") @AfterThrowing(value = "logPointCut()", throwing = "e")
public void doAfter(JoinPoint joinPoint, Exception e) { public void doAfter(JoinPoint joinPoint, Exception e)
handleLog(joinPoint, e); {
} handleLog(joinPoint, e);
}
@Async @Async
private void handleLog(final JoinPoint joinPoint, final Exception e) { private void handleLog(final JoinPoint joinPoint, final Exception e)
try { {
// 获得注解 try
Log controllerLog = getAnnotationLog(joinPoint); {
if (controllerLog == null) { // 获得注解
return; Log controllerLog = getAnnotationLog(joinPoint);
} if (controllerLog == null)
{
return;
}
// 获取当前的用户 // 获取当前的用户
User currentUser = ShiroUtils.getUser(); User currentUser = ShiroUtils.getUser();
// *========数据库日志=========*// // *========数据库日志=========*//
OperLog operLog = new OperLog(); OperLog operLog = new OperLog();
operLog.setStatus(UserConstants.NORMAL); operLog.setStatus(UserConstants.NORMAL);
// 请求的地址 // 请求的地址
String ip = ShiroUtils.getIp(); String ip = ShiroUtils.getIp();
operLog.setOperIp(ip); operLog.setOperIp(ip);
operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); operLog.setOperUrl(ServletUtils.getRequest().getRequestURI());
if (currentUser != null) { if (currentUser != null)
operLog.setLoginName(currentUser.getLoginName()); {
operLog.setDeptName(currentUser.getDept().getDeptName()); operLog.setLoginName(currentUser.getLoginName());
} operLog.setDeptName(currentUser.getDept().getDeptName());
}
if (e != null) { if (e != null)
operLog.setStatus(UserConstants.EXCEPTION); {
operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); operLog.setStatus(UserConstants.EXCEPTION);
} operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
// 设置方法名称 }
String className = joinPoint.getTarget().getClass().getName(); // 设置方法名称
String methodName = joinPoint.getSignature().getName(); String className = joinPoint.getTarget().getClass().getName();
operLog.setMethod(className + "." + methodName + "()"); String methodName = joinPoint.getSignature().getName();
// 处理设置注解上的参数 operLog.setMethod(className + "." + methodName + "()");
getControllerMethodDescription(controllerLog, operLog); // 处理设置注解上的参数
// 保存数据库 getControllerMethodDescription(controllerLog, operLog);
operLogService.insertOperlog(operLog); // 保存数据库
} catch (Exception exp) { operLogService.insertOperlog(operLog);
// 记录本地异常日志 }
log.error("==前置通知异常=="); catch (Exception exp)
log.error("异常信息:{}", exp.getMessage()); {
exp.printStackTrace(); // 记录本地异常日志
} log.error("==前置通知异常==");
} log.error("异常信息:{}", exp.getMessage());
exp.printStackTrace();
}
}
/** /**
* Controller * Controller
* *
* @param joinPoint * @param joinPoint
* * @return
* @return * @throws Exception
* @throws Exception */
*/ public void getControllerMethodDescription(Log log, OperLog operLog) throws Exception
public void getControllerMethodDescription(Log log, OperLog operLog) throws Exception { {
// 设置action动作 // 设置action动作
operLog.setAction(log.action()); operLog.setAction(log.action());
// 设置标题 // 设置标题
operLog.setTitle(log.title()); operLog.setTitle(log.title());
// 设置channel // 设置channel
operLog.setChannel(log.channel()); operLog.setChannel(log.channel());
// 是否需要保存request参数和值 // 是否需要保存request参数和值
if (log.isSaveRequestData()) { if (log.isSaveRequestData())
// 获取参数的信息,传入到数据库中。 {
setRequestValue(operLog); // 获取参数的信息,传入到数据库中。
} setRequestValue(operLog);
} }
}
/** /**
* log * log
* *
* @param operLog * @param operLog
* @param request * @param request
*/ */
private void setRequestValue(OperLog operLog) { private void setRequestValue(OperLog operLog)
Map<String, String[]> map = ServletUtils.getRequest().getParameterMap(); {
String params = JSONObject.toJSONString(map); Map<String, String[]> map = ServletUtils.getRequest().getParameterMap();
operLog.setOperParam(StringUtils.substring(params, 0, 255)); String params = JSONObject.toJSONString(map);
} operLog.setOperParam(StringUtils.substring(params, 0, 255));
}
/** /**
* *
*/ */
private Log getAnnotationLog(JoinPoint joinPoint) throws Exception { private Log getAnnotationLog(JoinPoint joinPoint) throws Exception
Signature signature = joinPoint.getSignature(); {
MethodSignature methodSignature = (MethodSignature) signature; Signature signature = joinPoint.getSignature();
Method method = methodSignature.getMethod(); MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
if (method != null) { if (method != null)
return method.getAnnotation(Log.class); {
} return method.getAnnotation(Log.class);
return null; }
} return null;
}
} }