package com.qianwen.core.log.error; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.core.log.publisher.ErrorLogPublisher; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.api.ResultCode; import com.qianwen.core.tool.utils.BeanUtil; import org.springframework.boot.web.servlet.error.DefaultErrorAttributes; import org.springframework.lang.Nullable; import org.springframework.web.context.request.WebRequest; /* loaded from: blade-starter-log-9.3.0.0-SNAPSHOT.jar:org/springblade/core/log/error/BladeErrorAttributes.class */ public class BladeErrorAttributes extends DefaultErrorAttributes { private static final Logger log = LoggerFactory.getLogger(BladeErrorAttributes.class); public Map getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) { R result; String requestUri = (String) getAttr(webRequest, "javax.servlet.error.request_uri"); Integer status = (Integer) getAttr(webRequest, "javax.servlet.error.status_code"); Throwable error = getError(webRequest); if (error == null) { log.error("URL:{} error status:{}", requestUri, status); result = R.fail(ResultCode.FAILURE, "系统未知异常[HttpStatus]:" + status); } else { log.error(String.format("URL:%s error status:%d", requestUri, status), error); result = R.fail(status.intValue(), error.getMessage()); } ErrorLogPublisher.publishEvent(error, requestUri); return BeanUtil.toMap(result); } @Nullable private T getAttr(WebRequest webRequest, String name) { return (T) webRequest.getAttribute(name, 0); } }