一、日志收集便于投产和调试对接 快速定位问题
自定义注解Class
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @ClassName: WebLog
* @Author wgzhu
* @Date 2022/6/24 14:47
* @Version v 1.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.METHOD })
@Documented
public @interface WebLog {
/**
* @return 日志描述信息
*/
String description() default "";
}
切面日志收集Class
import com.yunbeast.common.enums.NumberEnum;
import com.yunbeast.common.util.JsonUtil;
import com.yunbeast.common.util.UUIDUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.CodeSignature;
import org.slf4j.MDC;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName: WebLogAspect
* @Author wgzhu
* @Date 2022/6/24 14:55
* @Version v 1.0 记录请求日志切面
*/
@Slf4j
@Aspect
@Service
public class WebLogAspect {
/**
* invokeNo
*/
private