Commit 7c81710e authored by 王雪飞's avatar 王雪飞

优化

parent 13d48467
package cn.quantgroup.dinglog.util;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.StackTraceElementProxy;
import cn.quantgroup.dinglog.config.DingTalkHookLogErrorConfig;
import com.alibaba.fastjson.JSON;
import com.taobao.api.Constants;
import com.taobao.api.internal.util.HttpResponseData;
import com.taobao.api.internal.util.WebV2Utils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
......@@ -37,6 +40,45 @@ public class LogErrorSendMsgUtil {
return new Thread(r, "钉钉log错误消息");
}},new ThreadPoolExecutor.DiscardOldestPolicy());
public static void sendMsg(String msg,Throwable e){
if(msg==null) {
return ;
}
if(!DingTalkHookLogErrorConfig.isEnable()){
return;
}
if(e!=null){
msg = msg +"\n"+getStackTraceElementMessage(e);
}
sendMsg(msg);
}
public static String getStackTraceElementMessage(Throwable ex){
int index = 0;
String errorMessage = "";
StackTraceElement[] stackTraceElements = ex.getStackTrace();
StringBuilder sb = new StringBuilder();
sb.append(ex.fillInStackTrace()+" ");
for(StackTraceElement stackTraceElement:stackTraceElements){
if(index >3){
return errorMessage;
}
String className = stackTraceElement.getClassName();
if(className.contains("quantgroup") || className.contains(".qg.")||
className.contains(".xyqb.")||className.contains(".lkb.")||
className.contains(".liangkebang.") ){
index ++;
sb.append(stackTraceElement.getClassName() + "." + stackTraceElement.getMethodName() + "(" + stackTraceElement.getFileName() + ":"
+ stackTraceElement.getLineNumber() + ") ");
errorMessage = sb.toString();
}
}
return errorMessage;
}
public static void sendMsg(String msg){
if(!DingTalkHookLogErrorConfig.isEnable()){
return;
......@@ -66,10 +108,10 @@ public class LogErrorSendMsgUtil {
} catch (IOException e) {
e.printStackTrace();
}
if(responseData.getBody()!=null){
logger.info("项目名{},环境={},发送失败",project_name,System.getProperty("env"));
if(responseData.getBody()!=null&&responseData.getBody().contains("ok")){
logger.info("项目名{},环境={},发送成功",project_name,System.getProperty("env"));
}else{
logger.info("项目名{},环境={}, 发送成功",project_name,System.getProperty("env"));
logger.info("项目名{},环境={}, 发送失败",project_name,System.getProperty("env"));
}
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment