@AfterReturning(pointcut = “logPointCut()”, returning = “jsonResult”)
public void doAfter(JoinPoint joinPoint, Result jsonResult) {
handleLog(joinPoint, jsonResult);
}
/**
-
拦截异常操作,有异常时执行
-
@param joinPoint
-
@param e
*/
@AfterThrowing(value = “logPointCut()”, throwing = “e”)
public void doAfter(JoinPoint joinPoint, Exception e) {
Log controllerLog = getAnnotationLog(joinPoint);
// 没有注解
if (controllerLog == null) {
return;
}
// 处理入参
String args = this.argsArrayToString(joinPoint.getArgs());
// 获取请求上下文信息
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
HttpServletResponse response = attributes.getResponse();
// 获取时间
SimpleDateFormat sd = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
// 获取用户信息
String userName = (String.valueOf(SecurityContextHolder.getContext().getAuthentication().getPrincipal()));
// 组合入参信息
logger.error(“|” + userName + “|” + controllerLog.operationName() + “|” + sd.format(new Date()) + “|”
- IpUtil.getIpAddr() + “|” + “XXX系统” + “|” + “操作日志” + “|” + “null” + “|” + “null”);
logger.error(“|” + userName + “|” + controllerLog.operationName() + “|” + sd.format(new Date()) + “|”
- IpUtil.getIpAddr() + “|” + “XXX系统” + “|” + “接口日志” + “|” + request.getRequestURI() + “|” + args);
logger.debug(“错误信息为:” + e);
}
/**
-
判断是否有注解
-
@param joinPoint
-
@throws Exception
*/
private Log getAnnotationLog(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature)signature;
Method method = methodSignature.getMethod();
if (method != null) {
return method.getAnnotation(Log.class);
}
return null;
}
/**
-
功能描述:执行日志操作
-
@param: joinPoint ,e ,response
-
@return:
*/
private void handleLog(final JoinPoint joinPoint, Result jsonResult) {
Log controllerLog = getAnnotationLog(joinPoint);
// 没有注解
if (controllerLog == null) {
return;
}
// 处理入参
String args = this.argsArrayToString(joinPoint.getArgs());
// 获取请求上下文信息
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
HttpServletResponse response = attributes.getResponse();
// 获取时间
SimpleDateFormat sd = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
// 获取用户信息
String userName = (String.valueOf(SecurityContextHolder.getContext().getAuthentication().getPrincipal()));
// 组合入参信息
logger.info(“|” + userName + “|” + controllerLog.operationName() + “|” + sd.format(new Date()) + “|”
- IpUtil.getIpAddr() + “|” + “XXX系统” + “|” + “操作日志” + “|” + “null” + “|” + “null”);
logger.info(“|” + userName + “|” + controllerLog.operationName() + “|” + sd.format(new Date()) + “|”
- IpUtil.getIpAddr() + “|” + “XXX系统” + “|” + “接口日志” + “|” + request.getRequestURI() + “|” + args);
logger.info(“输出参数:” + JSONArray.toJSONString(jsonResult.getData()));
}
/**
-
组装入参
-
@param paramsArray
-
@return
*/
private String argsArrayToString(Object[] paramsArray) {
String params = “”;
最后
现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
[外链图片转存中…(img-Z6Divif7-1714466602732)]