|
@@ -0,0 +1,152 @@
|
|
|
+package cn.iocoder.yudao.userserver.modules.infra.dal.dataobject.logger;
|
|
|
+
|
|
|
+import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
|
|
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
|
+import cn.iocoder.yudao.userserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;
|
|
|
+import com.baomidou.mybatisplus.annotation.TableName;
|
|
|
+import lombok.*;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+/**
|
|
|
+ * API 异常数据
|
|
|
+ *
|
|
|
+ * @author 芋道源码
|
|
|
+ */
|
|
|
+@TableName("inf_api_error_log")
|
|
|
+@Data
|
|
|
+@EqualsAndHashCode(callSuper = true)
|
|
|
+@ToString(callSuper = true)
|
|
|
+@Builder
|
|
|
+@NoArgsConstructor
|
|
|
+@AllArgsConstructor
|
|
|
+public class InfApiErrorLogDO extends BaseDO {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 编号
|
|
|
+ */
|
|
|
+ private Long id;
|
|
|
+ /**
|
|
|
+ * 用户编号
|
|
|
+ */
|
|
|
+ private Long userId;
|
|
|
+ /**
|
|
|
+ * 链路追踪编号
|
|
|
+ *
|
|
|
+ * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。
|
|
|
+ */
|
|
|
+ private String traceId;
|
|
|
+ /**
|
|
|
+ * 用户类型
|
|
|
+ *
|
|
|
+ * 枚举 {@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;
|
|
|
+ /**
|
|
|
+ * 用户 IP
|
|
|
+ */
|
|
|
+ private String userIp;
|
|
|
+ /**
|
|
|
+ * 浏览器 UA
|
|
|
+ */
|
|
|
+ private String userAgent;
|
|
|
+
|
|
|
+ // ========== 异常相关字段 ==========
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 异常发生时间
|
|
|
+ */
|
|
|
+ private Date exceptionTime;
|
|
|
+ /**
|
|
|
+ * 异常名
|
|
|
+ *
|
|
|
+ * {@link Throwable#getClass()} 的类全名
|
|
|
+ */
|
|
|
+ private String exceptionName;
|
|
|
+ /**
|
|
|
+ * 异常导致的消息
|
|
|
+ *
|
|
|
+ * {@link cn.hutool.core.exceptions.ExceptionUtil#getMessage(Throwable)}
|
|
|
+ */
|
|
|
+ private String exceptionMessage;
|
|
|
+ /**
|
|
|
+ * 异常导致的根消息
|
|
|
+ *
|
|
|
+ * {@link cn.hutool.core.exceptions.ExceptionUtil#getRootCauseMessage(Throwable)}
|
|
|
+ */
|
|
|
+ private String exceptionRootCauseMessage;
|
|
|
+ /**
|
|
|
+ * 异常的栈轨迹
|
|
|
+ *
|
|
|
+ * {@link org.apache.commons.lang3.exception.ExceptionUtils#getStackTrace(Throwable)}
|
|
|
+ */
|
|
|
+ private String exceptionStackTrace;
|
|
|
+ /**
|
|
|
+ * 异常发生的类全名
|
|
|
+ *
|
|
|
+ * {@link StackTraceElement#getClassName()}
|
|
|
+ */
|
|
|
+ private String exceptionClassName;
|
|
|
+ /**
|
|
|
+ * 异常发生的类文件
|
|
|
+ *
|
|
|
+ * {@link StackTraceElement#getFileName()}
|
|
|
+ */
|
|
|
+ private String exceptionFileName;
|
|
|
+ /**
|
|
|
+ * 异常发生的方法名
|
|
|
+ *
|
|
|
+ * {@link StackTraceElement#getMethodName()}
|
|
|
+ */
|
|
|
+ private String exceptionMethodName;
|
|
|
+ /**
|
|
|
+ * 异常发生的方法所在行
|
|
|
+ *
|
|
|
+ * {@link StackTraceElement#getLineNumber()}
|
|
|
+ */
|
|
|
+ private Integer exceptionLineNumber;
|
|
|
+
|
|
|
+ // ========== 处理相关字段 ==========
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理状态
|
|
|
+ *
|
|
|
+ * 枚举 {@link InfApiErrorLogProcessStatusEnum}
|
|
|
+ */
|
|
|
+ private Integer processStatus;
|
|
|
+ /**
|
|
|
+ * 处理时间
|
|
|
+ */
|
|
|
+ private Date processTime;
|
|
|
+ /**
|
|
|
+ * 处理用户编号
|
|
|
+ *
|
|
|
+ * 关联 cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO.SysUserDO#getId()
|
|
|
+ */
|
|
|
+ private Long processUserId;
|
|
|
+
|
|
|
+}
|