1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.emato.ich.utils;
- import com.emato.ich.contant.ExceptionType;
- import com.emato.ich.entity.vo.ExceptionVo;
- import com.emato.ich.message.ICHPublishClient;
- import com.emato.ich.message.ICHTopic;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import org.eclipse.paho.client.mqttv3.MqttMessage;
- import java.io.ByteArrayOutputStream;
- import java.util.Date;
- /**
- * 异常日志处理工具类
- */
- public class LoggingUtils {
- public static void sendErrorLog(String cause, Throwable throwable){
- MqttMessage mqttMessage = wrapMessage((cause + ": " + (getStackTrace(throwable).toString())), ExceptionType.BIZ_ERROR);
- ICHPublishClient.getInstance().publish(String.format(ICHTopic.ERROR_LOG_REPORT, BaseUtils.getClientId()), mqttMessage);
- }
- public static void sendAppErrorLog(String cause, Throwable throwable){
- MqttMessage mqttMessage = wrapMessage((cause + ": " + (getStackTrace(throwable).toString())), ExceptionType.CRASH_ERROR);
- ICHPublishClient.getInstance().publish(String.format(ICHTopic.ERROR_LOG_REPORT, BaseUtils.getClientId()), mqttMessage);
- }
- private static MqttMessage wrapMessage(String cause, String type) {
- ExceptionVo exceptionVo = new ExceptionVo();
- exceptionVo.setClientId(BaseUtils.getClientId());
- exceptionVo.setReportData(cause);
- exceptionVo.setReportType(type);
- exceptionVo.setReportTime(DateUtils.formatDate(new Date()));
- // TODO 发送异常信息
- MqttMessage mqttMessage = new MqttMessage();
- mqttMessage.setQos(1);
- byte[] bytes = null;
- try {
- bytes = JacksonUtils.objectmapper.writeValueAsBytes(exceptionVo);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- mqttMessage.setPayload(bytes);
- return mqttMessage;
- }
- private static ByteArrayOutputStream getStackTrace(Throwable t) {
- ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();
- t.printStackTrace(new java.io.PrintWriter(buf, true));
- return buf;
- }
- }
|