top.doudou.common.aop.AopLog Maven / Gradle / Ivy
package top.doudou.common.aop;
import com.google.common.net.HttpHeaders;
import top.doudou.common.aop.collector.LogCollector;
import top.doudou.common.aop.collector.PrintCollector;
import java.lang.annotation.*;
/**
* @description aop日志切面注解
* @author 傻男人<[email protected]>
* @Date 2020-09-24 14:53
* @Version V1.0
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AopLog {
/**
* 仅当发生异常时才记录
*/
boolean logOnErr() default false;
/**
* 操作类型(操作分类)
*/
String type() default "";
/**
* 接口名字(如有swagger的注解ApiOperation则可以不用填写)
*/
String interfaceName() default "";
/**
* 记录的headers ,默认记录 content-type
*/
String[] headers() default {HttpHeaders.CONTENT_TYPE};
/**
* 切面是否记录 请求参数
*/
boolean args() default true;
/**
* 切面是否记录 响应参数
*/
boolean respBody() default true;
/**
* 当发生异常时,切面是否记录异常堆栈信息到content
*/
boolean stackTraceOnErr() default false;
/**
* 异步模式 收集日志
*/
boolean asyncMode() default true;
/**
* 收集器
*/
Class extends LogCollector> collector() default PrintCollector.class;
}