package com.cloudroam.common.aop;
|
|
|
import com.cloudroam.common.LocalLogger;
|
import com.cloudroam.common.annotation.LogParams;
|
import com.cloudroam.model.LogDO;
|
import com.cloudroam.util.JsonUtil;
|
import io.github.talelin.core.annotation.Logger;
|
import io.github.talelin.core.annotation.PermissionMeta;
|
import lombok.extern.slf4j.Slf4j;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Aspect;
|
import org.springframework.stereotype.Component;
|
|
@Aspect
|
@Component
|
@Slf4j
|
public class LogsParamsAspect {
|
|
// @Around("@annotation(logParams)")
|
// public Object logMethodParams(ProceedingJoinPoint joinPoint, LogParams logParams) throws Throwable {
|
// // 获取方法参数
|
// Object[] args = joinPoint.getArgs();
|
//
|
// // 在这里可以处理参数,记录日志或执行其他操作
|
// for (Object arg : args) {
|
// System.out.println("Method parameter: " + arg.toString());
|
// log.info("Method parameter: " + arg.toString());
|
// }
|
//
|
// // 继续执行原始方法
|
// Object result = joinPoint.proceed();
|
//
|
// return result;
|
// }
|
|
@Around("@annotation(logger) && @annotation(meta)")
|
public Object logMethodParams(ProceedingJoinPoint joinPoint, PermissionMeta meta, Logger logger) throws Throwable {
|
LogDO logDO=new LogDO();
|
|
// 获取方法参数
|
Object[] args = joinPoint.getArgs();
|
|
// 在这里可以处理参数,记录日志或执行其他操作
|
for (Object arg : args) {
|
System.out.println("Method parameter: " + arg.toString());
|
}
|
|
|
log.info("meta: " + meta.toString());
|
log.info("logger: " + logger.toString());
|
logDO.setQueryParams(JsonUtil.obj2Json(args));
|
LocalLogger.setLocalLogDO(logDO);
|
// 继续执行原始方法
|
Object result = joinPoint.proceed();
|
|
final String queryParams = LocalLogger.getLocalLogDO().getQueryParams();
|
System.out.println(queryParams);
|
|
LocalLogger.clearLocalLogDO();
|
|
return result;
|
}
|
}
|