package com.qxueyou.scc.base.service.impl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.IONSExceptionLogService; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.sys.model.SysLog; import com.qxueyou.scc.sys.service.ISysLogService; /** * ONS严格异常处理,消息处理都捕获Exception,并且不抛出,将异常存入表中 * @author ody.yuan * */ @Service(value = "ONSExceptionLogService") public class ONSExceptionLogService implements IONSExceptionLogService { @Autowired ISysLogService syslogService; @Override @Transactional(propagation=Propagation.REQUIRES_NEW) public Result logSaveExceptionLog(String topic, String msgType,String businessId ,String desp ) { // 处理长度 String currTopic = null == topic ? "" : topic ; String currDesp = StringUtils.isNotBlank(desp) && desp.length() > 125 ? desp.substring(0,125) : desp ; SysLog log = new SysLog(); TraceUtils.setCreateTrace(log); log.setContent(getContent(currTopic, businessId, msgType)); log.setModule("ONS_EXCEPTION_LOG"); log.setDesp( currDesp ); log.setDeleteFlag(false); log.setType(SysLog.LOG_TYPE_BUSINESS); this.syslogService.insertLog(log); return new Result(true); } private String getContent(String currTopic, String businessId ,String msgType){ String content = currTopic.concat(" - "); if(StringUtils.isNotBlank(msgType)){ content = content.concat(msgType).concat(" - "); } if(StringUtils.isNotBlank(businessId)){ content = content.concat(businessId); } return content.length() > 255 ? content.substring(0,255) : content ; } }