package com.iailab.module.infra.dal.dataobject.logger;
|
|
import com.iailab.framework.apilog.core.enums.OperateTypeEnum;
|
import com.iailab.framework.common.enums.UserTypeEnum;
|
import com.iailab.framework.common.pojo.CommonResult;
|
import com.iailab.framework.mybatis.core.dataobject.BaseDO;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import lombok.*;
|
|
import java.time.LocalDateTime;
|
|
/**
|
* API 访问日志
|
*
|
* @author iailab
|
*/
|
@TableName("infra_api_access_log")
|
@KeySequence(value = "infra_api_access_log_seq")
|
@Data
|
@EqualsAndHashCode(callSuper = true)
|
@ToString(callSuper = true)
|
@Builder
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class ApiAccessLogDO extends BaseDO {
|
|
/**
|
* {@link #requestParams} 的最大长度
|
*/
|
public static final Integer REQUEST_PARAMS_MAX_LENGTH = 8000;
|
|
/**
|
* {@link #resultMsg} 的最大长度
|
*/
|
public static final Integer RESULT_MSG_MAX_LENGTH = 512;
|
|
/**
|
* 编号
|
*/
|
@TableId
|
private Long id;
|
/**
|
* 链路追踪编号
|
*
|
* 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。
|
*/
|
private String traceId;
|
/**
|
* 用户编号
|
*/
|
private Long userId;
|
/**
|
* 用户类型
|
*
|
* 枚举 {@link UserTypeEnum}
|
*/
|
private Integer userType;
|
/**
|
* 应用名
|
*
|
* 目前读取 `spring.application.name` 配置项
|
*/
|
private String applicationName;
|
|
// ========== 请求相关字段 ==========
|
|
/**
|
* 请求方法名
|
*/
|
private String requestMethod;
|
/**
|
* 访问地址
|
*/
|
private String requestUrl;
|
/**
|
* 请求参数
|
*
|
* query: Query String
|
* body: Quest Body
|
*/
|
private String requestParams;
|
/**
|
* 响应结果
|
*/
|
private String responseBody;
|
/**
|
* 用户 IP
|
*/
|
private String userIp;
|
/**
|
* 浏览器 UA
|
*/
|
private String userAgent;
|
|
// ========== 执行相关字段 ==========
|
|
/**
|
* 操作模块
|
*/
|
private String operateModule;
|
/**
|
* 操作名
|
*/
|
private String operateName;
|
/**
|
* 操作分类
|
*
|
* 枚举 {@link OperateTypeEnum}
|
*/
|
private Integer operateType;
|
|
/**
|
* 开始请求时间
|
*/
|
private LocalDateTime beginTime;
|
/**
|
* 结束请求时间
|
*/
|
private LocalDateTime endTime;
|
/**
|
* 执行时长,单位:毫秒
|
*/
|
private Integer duration;
|
|
/**
|
* 结果码
|
*
|
* 目前使用的 {@link CommonResult#getCode()} 属性
|
*/
|
private Integer resultCode;
|
/**
|
* 结果提示
|
*
|
* 目前使用的 {@link CommonResult#getMsg()} 属性
|
*/
|
private String resultMsg;
|
|
}
|