Browse Source

错误日志打印4

dev
jianjun 3 years ago
parent
commit
41942101a7
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
  2. 47
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java

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

@ -51,7 +51,7 @@ public class LogMsgSendFilter extends LevelFilter {
try {
//排除其他包路径的东西
if (!event.getLoggerName().startsWith(baseProjectPackage)){
return FilterReply.DENY;
return super.decide(event);
}
getServerInfo();
if (EnvEnum.LOCAL.getName().equals(activeEnv)){

47
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java

@ -1,6 +1,8 @@
package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.google.common.collect.Lists;
import org.apache.commons.codec.binary.Base64;
@ -12,9 +14,13 @@ import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.ArrayBlockingQueue;
/**
@ -121,6 +127,7 @@ public class DingdingMsgSender {
* @param param 请求参数JSON格式
* @return
*/
@Deprecated
private Result<String> sendMsg(DingTalkTextMsg param) {
if (StringUtils.isBlank(param.getWebHook())) {
param.setWebHook(webHook);
@ -129,8 +136,18 @@ public class DingdingMsgSender {
param.setSecret(secret);
}
Result<String> result = new Result<String>().error();
Long timestamp = System.currentTimeMillis();
try {
String url = getUrlString(param, System.currentTimeMillis());
String jsonStrParam = param.getMsgContent();
result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam);
} catch (Exception e) {
logger.warn("sendPostByJSON error", e);
}
return result;
}
@NotNull
private String getUrlString(DingTalkTextMsg param, Long timestamp) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
String stringToSign = timestamp + "\n" + param.getSecret();
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(param.getSecret().getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
@ -138,8 +155,32 @@ public class DingdingMsgSender {
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
String url = param.getWebHook();
url = url.concat("&timestamp=" + timestamp + "&sign=" + sign);
String jsonStrParam = param.getMsgContent();
result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam);
return url;
}
/**
* 发送POST 请求
*
* @param param 请求参数JSON格式
* @return
*/
public Result<String> sendMsgSdk(DingTalkTextMsg param) {
if (StringUtils.isBlank(param.getWebHook())) {
param.setWebHook(webHook);
}
if (StringUtils.isBlank(param.getSecret())) {
param.setSecret(secret);
}
Result<String> result = new Result<String>().error();
try {
String url = getUrlString(param, System.currentTimeMillis());
DefaultDingTalkClient client = new DefaultDingTalkClient(url);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("text");
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent("sdk"+param.getContent());
request.setText(text);
client.execute(request);
} catch (Exception e) {
logger.warn("sendPostByJSON error", e);
}

Loading…
Cancel
Save