全局日志 aop

自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface OperationLog {
   //请求方法名称
String operationName() default "";
}

编写切面类
@Aspect
@Component
public class OperationLogAspect {

private static Logger log = Logger.getLogger(OperationLogAspect.class);

@Pointcut("@annotation(com.sthjnet.zsbank.annotation.OperationLog)")
public void operationLogAspect(){

}

@Before("operationLogAspect()")
public void around(JoinPoint joinPoint){
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
log.info("请求ip:"+getIpRequest(request)+",请求地址:"+request.getRequestURL().toString());
}

@AfterReturning(returning = "ret", pointcut = "operationLogAspect()")
public void doAfterReturning(JoinPoint joinPoint,Object ret) throws Throwable {
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;

Method method = methodSignature.getMethod();
OperationLog annotation = method.getAnnotation(OperationLog.class);
String operationName = annotation.operationName();
// 处理完请求,返回内容
AjaxJson ajaxJson = (AjaxJson)ret;
if(ajaxJson.isSuccess()){
log.info(operationName+"返回: " + JSON.toJSONString(ret));
}else {
log.error(operationName+"返回: " + JSON.toJSONString(ret));
}
}

public static String getIpRequest(HttpServletRequest request) {
String unknown = "unknown";

String ip0 = request.getHeader("x-forwarded-for");
String ip = request.getHeader("X-Real-IP");

if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}

if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}

if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}

return ip;
}

}
引用注解
@OperationLog(operationName = "签约开户0003")
@ResponseBody
@RequestMapping("_0003")

 

posted @ 2022-04-26 14:51  一个追求未知的人  阅读(158)  评论(0)    收藏  举报