Browse Source

加强判断 不抛异常

dev_shibei_match
jianjun 4 years ago
parent
commit
5352ef3a77
  1. 29
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationReadyEventListener.java
  2. 43
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java

29
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ApplicationReadyEventListener.java

@ -13,10 +13,7 @@ import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.taobao.api.ApiException;
import org.apache.logging.log4j.LogManager;
@ -52,31 +49,11 @@ public class ApplicationReadyEventListener implements ApplicationListener<Applic
}
}
private void sendDingTextMsg() {
//发送启动成功消息
InetUtils inetUtils = SpringContextUtils.getBean(InetUtils.class);
String serverIp = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
//开发小组 群机器人地址
String url = "https://oapi.dingtalk.com/robot/send?access_token=ffd7c972b0525e249283df1a16b65a8b9d0012601f3a458dfc588c2eac497bb5";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(EnvEnum.getCurrentEnv().getName())
.append("【")
.append(appName)
.append("】")
.append("ip地址: ")
.append(serverIp)
.append("部署完毕!");
DingTalkTextMsg msg = new DingTalkTextMsg();
msg.setWebHook(url);
msg.setAtAll(true);
msg.setContent(stringBuilder.toString());
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSON(url, msg.getMsgContent());
logger.info(stringResult);
}
private String getServerIp() {
InetUtils inetUtils = SpringContextUtils.getBean(InetUtils.class);
if (inetUtils == null){
return null;
}
return inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
}

43
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java

@ -9,19 +9,18 @@ import ch.qos.logback.core.spi.FilterReply;
import com.epmet.commons.tools.constant.ThreadLocalConstant;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.DingdingMsgSender;
import com.epmet.commons.tools.utils.SpringContextUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.commons.util.InetUtils;
import org.springframework.core.env.Environment;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -47,40 +46,42 @@ public class LogMsgSendFilter extends LevelFilter {
//如果日志级别等于设置的日志级别 则发送消息
if (event.getLevel().isGreaterOrEqual(Level.ERROR)) {
try {
getServerInfo();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("【日志告警】\n");
stringBuilder.append("\n");
stringBuilder.append("告警级别:" + event.getLevel());
stringBuilder.append("告警级别:").append(event.getLevel());
stringBuilder.append("\n");
if (StringUtils.isNotBlank(appName)) {
stringBuilder.append("服务名称:" + appName);
stringBuilder.append("服务名称:").append(appName);
stringBuilder.append("\n");
}
getServerInfo();
if (StringUtils.isNotBlank(activeEnv)) {
stringBuilder.append("告警环境:" + EnvEnum.getEnum(activeEnv).getName());
stringBuilder.append("告警环境:").append(activeEnv);
stringBuilder.append("\n");
}
if (StringUtils.isNotBlank(serverIp)) {
stringBuilder.append("IP地址:" + serverIp);
stringBuilder.append("IP地址:").append(serverIp);
stringBuilder.append("\n");
}
stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp()));
stringBuilder.append("故障时间:").append(DateUtils.formatTimestamp(event.getTimeStamp(),DateUtils.DATE_TIME_PATTERN));
stringBuilder.append("\n");
stringBuilder.append("TraceId:" + Thread.currentThread().getName());
stringBuilder.append("TraceId:").append(Thread.currentThread().getName());
stringBuilder.append("\n");
HttpServletRequest request = getRequest();
if (request != null) {
String requestURI = request.getRequestURI();
stringBuilder.append("请求路径:" + requestURI);
stringBuilder.append("请求路径:").append(requestURI);
stringBuilder.append("\n");
stringBuilder.append("请求参数:" + ThreadLocalConstant.requestParam.get());
stringBuilder.append("请求参数:").append(ThreadLocalConstant.requestParam.get());
stringBuilder.append("\n");
}
@ -89,7 +90,7 @@ public class LogMsgSendFilter extends LevelFilter {
if (throwableProxy == null && formattedMessage.length() > 1000) {
formattedMessage = formattedMessage.substring(0, getCharacterPosition(formattedMessage, baseProjectPackage, 5));
}
stringBuilder.append("告警信息:" + formattedMessage);
stringBuilder.append("告警信息:").append(formattedMessage);
stringBuilder.append("\n");
@ -134,12 +135,8 @@ public class LogMsgSendFilter extends LevelFilter {
}
try {
if (activeEnv == null) {
Environment environment = SpringContextUtils.getBean(Environment.class);
String[] activeProfiles = environment.getActiveProfiles();
if (activeProfiles != null && activeProfiles.length > 0) {
logger.info("activeProfiles:{}", activeProfiles);
activeEnv = activeProfiles[0];
}
EnvEnum currentEnv = EnvEnum.getCurrentEnv();
activeEnv = currentEnv.getName();
}
} catch (Exception e) {
logger.warn("getServerInfo get bean Environment exception", e);
@ -212,16 +209,6 @@ public class LogMsgSendFilter extends LevelFilter {
}
}
private String formatLongTime2Str(long timestamp) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return dateFormat.format(timestamp);
}
public void setActiveEnv(String activeEnv) {
this.activeEnv = activeEnv;
}
public void setAppName(String appName) {
this.appName = appName;
}

Loading…
Cancel
Save