houzhongyi
2024-07-11 e7c1260db32209a078a962aaa0ad5492c35774fb
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.infra.dal.dataobject.logger;
H 2
3 import com.iailab.framework.apilog.core.enums.OperateTypeEnum;
4 import com.iailab.framework.common.enums.UserTypeEnum;
5 import com.iailab.framework.common.pojo.CommonResult;
6 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
7 import com.baomidou.mybatisplus.annotation.KeySequence;
8 import com.baomidou.mybatisplus.annotation.TableId;
9 import com.baomidou.mybatisplus.annotation.TableName;
10 import lombok.*;
11
12 import java.time.LocalDateTime;
13
14 /**
15  * API 访问日志
16  *
17  * @author iailab
18  */
19 @TableName("infra_api_access_log")
20 @KeySequence(value = "infra_api_access_log_seq")
21 @Data
22 @EqualsAndHashCode(callSuper = true)
23 @ToString(callSuper = true)
24 @Builder
25 @NoArgsConstructor
26 @AllArgsConstructor
27 public class ApiAccessLogDO extends BaseDO {
28
29     /**
30      * {@link #requestParams} 的最大长度
31      */
32     public static final Integer REQUEST_PARAMS_MAX_LENGTH = 8000;
33
34     /**
35      * {@link #resultMsg} 的最大长度
36      */
37     public static final Integer RESULT_MSG_MAX_LENGTH = 512;
38
39     /**
40      * 编号
41      */
42     @TableId
43     private Long id;
44     /**
45      * 链路追踪编号
46      *
47      * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。
48      */
49     private String traceId;
50     /**
51      * 用户编号
52      */
53     private Long userId;
54     /**
55      * 用户类型
56      *
57      * 枚举 {@link UserTypeEnum}
58      */
59     private Integer userType;
60     /**
61      * 应用名
62      *
63      * 目前读取 `spring.application.name` 配置项
64      */
65     private String applicationName;
66
67     // ========== 请求相关字段 ==========
68
69     /**
70      * 请求方法名
71      */
72     private String requestMethod;
73     /**
74      * 访问地址
75      */
76     private String requestUrl;
77     /**
78      * 请求参数
79      *
80      * query: Query String
81      * body: Quest Body
82      */
83     private String requestParams;
84     /**
85      * 响应结果
86      */
87     private String responseBody;
88     /**
89      * 用户 IP
90      */
91     private String userIp;
92     /**
93      * 浏览器 UA
94      */
95     private String userAgent;
96
97     // ========== 执行相关字段 ==========
98
99     /**
100      * 操作模块
101      */
102     private String operateModule;
103     /**
104      * 操作名
105      */
106     private String operateName;
107     /**
108      * 操作分类
109      *
110      * 枚举 {@link OperateTypeEnum}
111      */
112     private Integer operateType;
113
114     /**
115      * 开始请求时间
116      */
117     private LocalDateTime beginTime;
118     /**
119      * 结束请求时间
120      */
121     private LocalDateTime endTime;
122     /**
123      * 执行时长,单位:毫秒
124      */
125     private Integer duration;
126
127     /**
128      * 结果码
129      *
130      * 目前使用的 {@link CommonResult#getCode()} 属性
131      */
132     private Integer resultCode;
133     /**
134      * 结果提示
135      *
136      * 目前使用的 {@link CommonResult#getMsg()} 属性
137      */
138     private String resultMsg;
139
140 }