潘志宝
5 天以前 7fce3006ecd0b670e33c2d3ba123778e79e2e943
提交 | 用户 | 时间
e7c126 1 package com.iailab.framework.apilog.core.annotation;
H 2
3 import com.iailab.framework.apilog.core.enums.OperateTypeEnum;
4
5 import java.lang.annotation.ElementType;
6 import java.lang.annotation.Retention;
7 import java.lang.annotation.RetentionPolicy;
8 import java.lang.annotation.Target;
9
10 /**
11  * 访问日志注解
12  *
13  * @author iailab
14  */
15 @Target({ElementType.METHOD})
16 @Retention(RetentionPolicy.RUNTIME)
17 public @interface ApiAccessLog {
18
19     // ========== 开关字段 ==========
20
21     /**
22      * 是否记录访问日志
23      */
24     boolean enable() default true;
25     /**
26      * 是否记录请求参数
27      *
28      * 默认记录,主要考虑请求数据一般不大。可手动设置为 false 进行关闭
29      */
30     boolean requestEnable() default true;
31     /**
32      * 是否记录响应结果
33      *
34      * 默认不记录,主要考虑响应数据可能比较大。可手动设置为 true 进行打开
35      */
36     boolean responseEnable() default false;
37     /**
38      * 敏感参数数组
39      *
40      * 添加后,请求参数、响应结果不会记录该参数
41      */
42     String[] sanitizeKeys() default {};
43
44     // ========== 模块字段 ==========
45
46     /**
47      * 操作模块
48      *
49      * 为空时,会尝试读取 {@link io.swagger.v3.oas.annotations.tags.Tag#name()} 属性
50      */
51     String operateModule() default "";
52     /**
53      * 操作名
54      *
55      * 为空时,会尝试读取 {@link io.swagger.v3.oas.annotations.Operation#summary()} 属性
56      */
57     String operateName() default "";
58     /**
59      * 操作分类
60      *
61      * 实际并不是数组,因为枚举不能设置 null 作为默认值
62      */
63     OperateTypeEnum[] operateType() default {};
64
65 }