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; } }