package com.qianwen.core.log.publisher; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.core.log.constant.EventConstant; import com.qianwen.core.log.event.ErrorLogEvent; import com.qianwen.core.log.model.LogError; import com.qianwen.core.log.utils.LogAbstractUtil; import com.qianwen.core.tool.utils.Exceptions; import com.qianwen.core.tool.utils.Func; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.core.tool.utils.WebUtil; /* loaded from: blade-starter-log-9.3.0.0-SNAPSHOT.jar:org/springblade/core/log/publisher/ErrorLogPublisher.class */ public class ErrorLogPublisher { private static final Logger log = LoggerFactory.getLogger(ErrorLogPublisher.class); public static void publishEvent(Throwable error, String requestUri) { if (System.getProperties().getProperty("blade.system.need_init", "false").equals("true")) { return; } log.error("进入错误日志记录"); HttpServletRequest request = WebUtil.getRequest(); LogError logError = new LogError(); logError.setRequestUri(requestUri); if (Func.isNotEmpty(error)) { logError.setStackTrace(Exceptions.getStackTraceAsString(error)); logError.setExceptionName(error.getClass().getName()); logError.setMessage(error.getMessage()); StackTraceElement[] elements = error.getStackTrace(); if (Func.isNotEmpty(elements)) { StackTraceElement element = elements[0]; logError.setMethodName(element.getMethodName()); logError.setMethodClass(element.getClassName()); logError.setFileName(element.getFileName()); logError.setLineNumber(Integer.valueOf(element.getLineNumber())); } } LogAbstractUtil.addRequestInfoToLog(request, logError); Map event = new HashMap<>(16); event.put(EventConstant.EVENT_LOG, logError); SpringUtil.publishEvent(new ErrorLogEvent(event)); } }