1. 限制记录 api 日志的字段长度
2. 完整记录所有的 databus api 的请求日志 3. 新增 iwork 同步可以按 id 维度进行 4. 新增自动扫描 BusinessBaseDO 的 公司部门数据权限模式
This commit is contained in:
@@ -26,11 +26,76 @@ import java.time.LocalDateTime;
|
||||
@KeySequence(value = "infra_api_error_log_seq")
|
||||
public class ApiErrorLogDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* {@link #traceId} 的最大长度
|
||||
*/
|
||||
public static final Integer TRACE_ID_MAX_LENGTH = 64;
|
||||
|
||||
/**
|
||||
* {@link #applicationName} 的最大长度
|
||||
*/
|
||||
public static final Integer APPLICATION_NAME_MAX_LENGTH = 50;
|
||||
|
||||
/**
|
||||
* {@link #requestMethod} 的最大长度
|
||||
*/
|
||||
public static final Integer REQUEST_METHOD_MAX_LENGTH = 16;
|
||||
|
||||
/**
|
||||
* {@link #requestUrl} 的最大长度
|
||||
*/
|
||||
public static final Integer REQUEST_URL_MAX_LENGTH = 255;
|
||||
|
||||
/**
|
||||
* {@link #requestParams} 的最大长度
|
||||
*/
|
||||
public static final Integer REQUEST_PARAMS_MAX_LENGTH = 8000;
|
||||
|
||||
/**
|
||||
* {@link #userIp} 的最大长度
|
||||
*/
|
||||
public static final Integer USER_IP_MAX_LENGTH = 50;
|
||||
|
||||
/**
|
||||
* {@link #userAgent} 的最大长度
|
||||
*/
|
||||
public static final Integer USER_AGENT_MAX_LENGTH = 512;
|
||||
|
||||
/**
|
||||
* {@link #exceptionName} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_NAME_MAX_LENGTH = 128;
|
||||
|
||||
/**
|
||||
* {@link #exceptionClassName} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_CLASS_NAME_MAX_LENGTH = 512;
|
||||
|
||||
/**
|
||||
* {@link #exceptionFileName} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_FILE_NAME_MAX_LENGTH = 512;
|
||||
|
||||
/**
|
||||
* {@link #exceptionMethodName} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_METHOD_NAME_MAX_LENGTH = 512;
|
||||
|
||||
/**
|
||||
* {@link #exceptionMessage} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_MESSAGE_MAX_LENGTH = 4000;
|
||||
|
||||
/**
|
||||
* {@link #exceptionRootCauseMessage} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_ROOT_CAUSE_MESSAGE_MAX_LENGTH = 4000;
|
||||
|
||||
/**
|
||||
* {@link #exceptionStackTrace} 的最大长度
|
||||
*/
|
||||
public static final Integer EXCEPTION_STACK_TRACE_MAX_LENGTH = 8000;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
|
||||
@@ -18,7 +18,6 @@ import org.springframework.validation.annotation.Validated;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.infra.dal.dataobject.logger.ApiErrorLogDO.REQUEST_PARAMS_MAX_LENGTH;
|
||||
import static com.zt.plat.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_NOT_FOUND;
|
||||
import static com.zt.plat.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_PROCESSED;
|
||||
|
||||
@@ -39,7 +38,7 @@ public class ApiErrorLogServiceImpl implements ApiErrorLogService {
|
||||
public void createApiErrorLog(ApiErrorLogCreateReqDTO createDTO) {
|
||||
ApiErrorLogDO apiErrorLog = BeanUtils.toBean(createDTO, ApiErrorLogDO.class)
|
||||
.setProcessStatus(ApiErrorLogProcessStatusEnum.INIT.getStatus());
|
||||
apiErrorLog.setRequestParams(StrUtils.maxLength(apiErrorLog.getRequestParams(), REQUEST_PARAMS_MAX_LENGTH));
|
||||
truncateOverflowFields(apiErrorLog);
|
||||
if (TenantContextHolder.getTenantId() != null) {
|
||||
apiErrorLogMapper.insert(apiErrorLog);
|
||||
} else {
|
||||
@@ -48,6 +47,35 @@ public class ApiErrorLogServiceImpl implements ApiErrorLogService {
|
||||
}
|
||||
}
|
||||
|
||||
private void truncateOverflowFields(ApiErrorLogDO apiErrorLog) {
|
||||
apiErrorLog.setTraceId(StrUtils.maxLength(apiErrorLog.getTraceId(), ApiErrorLogDO.TRACE_ID_MAX_LENGTH));
|
||||
apiErrorLog.setApplicationName(StrUtils.maxLength(apiErrorLog.getApplicationName(),
|
||||
ApiErrorLogDO.APPLICATION_NAME_MAX_LENGTH));
|
||||
apiErrorLog.setRequestMethod(StrUtils.maxLength(apiErrorLog.getRequestMethod(),
|
||||
ApiErrorLogDO.REQUEST_METHOD_MAX_LENGTH));
|
||||
apiErrorLog.setRequestUrl(StrUtils.maxLength(apiErrorLog.getRequestUrl(),
|
||||
ApiErrorLogDO.REQUEST_URL_MAX_LENGTH));
|
||||
apiErrorLog.setRequestParams(StrUtils.maxLength(apiErrorLog.getRequestParams(),
|
||||
ApiErrorLogDO.REQUEST_PARAMS_MAX_LENGTH));
|
||||
apiErrorLog.setUserIp(StrUtils.maxLength(apiErrorLog.getUserIp(), ApiErrorLogDO.USER_IP_MAX_LENGTH));
|
||||
apiErrorLog.setUserAgent(StrUtils.maxLength(apiErrorLog.getUserAgent(),
|
||||
ApiErrorLogDO.USER_AGENT_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionName(StrUtils.maxLength(apiErrorLog.getExceptionName(),
|
||||
ApiErrorLogDO.EXCEPTION_NAME_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionClassName(StrUtils.maxLength(apiErrorLog.getExceptionClassName(),
|
||||
ApiErrorLogDO.EXCEPTION_CLASS_NAME_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionFileName(StrUtils.maxLength(apiErrorLog.getExceptionFileName(),
|
||||
ApiErrorLogDO.EXCEPTION_FILE_NAME_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionMethodName(StrUtils.maxLength(apiErrorLog.getExceptionMethodName(),
|
||||
ApiErrorLogDO.EXCEPTION_METHOD_NAME_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionMessage(StrUtils.maxLength(apiErrorLog.getExceptionMessage(),
|
||||
ApiErrorLogDO.EXCEPTION_MESSAGE_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionRootCauseMessage(StrUtils.maxLength(apiErrorLog.getExceptionRootCauseMessage(),
|
||||
ApiErrorLogDO.EXCEPTION_ROOT_CAUSE_MESSAGE_MAX_LENGTH));
|
||||
apiErrorLog.setExceptionStackTrace(StrUtils.maxLength(apiErrorLog.getExceptionStackTrace(),
|
||||
ApiErrorLogDO.EXCEPTION_STACK_TRACE_MAX_LENGTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ApiErrorLogDO> getApiErrorLogPage(ApiErrorLogPageReqVO pageReqVO) {
|
||||
return apiErrorLogMapper.selectPage(pageReqVO);
|
||||
|
||||
Reference in New Issue
Block a user