定时任务日志优化

邮件发送失败记录
yun-zuoyi
汪云昊 5 years ago
parent 77934319d1
commit da9e91b89d

@ -52,4 +52,7 @@ public interface ISystemInitService {
@ApiOperation(value = "对象版本记录信息")
void reloadPojoVersionPlan();
@ApiOperation(value = "定时任务日志等级")
void reloadTaskPlanLogLevel();
}

@ -80,6 +80,7 @@ public interface ISysTaskPlanService {
* @param groupName
* @return
*/
@AnnoIgnoreLog
@ApiOperation(value = "查询任务计划",notes = "根据任务计划名称与组名称查询")
SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName);

@ -176,12 +176,13 @@ public class AuthController extends CoreBaseController {
ValidatorBean.checkIsNumber(parentId,"父节点不能为空");
List<SysMenu> result = memTreeService.packTreeSysMenuByUserIdAndParentId(getSessionUser().getUser().getId(), Long.parseLong(parentId));
result = findChildList(result);
// 国际化
result = sysMenuService.setLanguageSysMenuName(getSessionUser().getLanguageCode(),result);
result = findChildList(result);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(findChildList(result));
.setResultList(result);
} catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep);

@ -3,13 +3,16 @@ package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.license.ImppLicense;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.license.ImppLicenseTool;
import cn.estsh.impp.framework.boot.license.serviceimpl.ImppLicenseDecoder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -17,9 +20,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@ -158,4 +159,35 @@ public class BackstageController extends CoreBaseController {
}
}
@GetMapping(value = "/reset/task-log-level")
@ApiOperation(value = "重置定时任务日志等级",notes = "重置定时任务日志等级")
public ResultBean restTaskLogLevel(){
try {
systemInitService.reloadTaskPlanLogLevel();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping(value = "/license")
@ApiOperation(value = "更新授权信息", notes = "更新授权信息")
public ResultBean updateLicense(@RequestBody String content){
try {
ImppLicense license = ImppLicenseDecoder.getLicenseDecoder(content);
if (Objects.nonNull(license)) {
ImppLicenseTool.updateImppLicense(license);
} else {
return ResultBean.fail("错误的授权信息");
}
return ResultBean.success("操作成功");
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
}

@ -336,4 +336,13 @@ public class SysEnumController extends CoreBaseController {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.DATA_SOURCE_TYPE.values()));
}
@GetMapping("/message-send-status")
@ApiOperation(value = "消息发送状态", notes = "消息发送状态")
public ResultBean getMessageSendStatus() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.MESSAGE_SEND_STATUS.values()));
}
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService;
@ -13,6 +14,7 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.FileTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
@ -28,6 +30,7 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.quartz.IQuartzJobService;
import cn.estsh.impp.framework.boot.quartz.ScheduleTool;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.RedisCacheTool;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
@ -40,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@ -75,6 +79,12 @@ public class SysTaskPlanController extends CoreBaseController {
@Autowired
private EntityManager entityManager;
@Autowired
private ISystemInitService systemInitService;
@Resource(name= CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
/************ 微服定时任务 *********/
@Autowired
private ScheduleTool scheduleTool;
@ -211,6 +221,9 @@ public class SysTaskPlanController extends CoreBaseController {
}
}
//更新任务计划缓存
putTaskPlanCache(sysTaskPlan);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTaskPlan);
} catch (ImppBusiException busExcep) {
isMakeUpOperate = true;
@ -301,6 +314,10 @@ public class SysTaskPlanController extends CoreBaseController {
resultBean = ResultBean.fail(baseResultBean.getErrorMsg());
}
}
//更新任务计划缓存
putTaskPlanCache(sysTaskPlan);
return resultBean;
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -329,6 +346,9 @@ public class SysTaskPlanController extends CoreBaseController {
sysTaskPlanService.deleteSysTaskPlanById(Long.parseLong(id));
getJobService(sysTaskPlan.getTaskSoftTypeRdd()).deleteTask(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
// 清理缓存
removeTaskPlanCache(sysTaskPlan);
return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -495,6 +515,10 @@ public class SysTaskPlanController extends CoreBaseController {
, sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam());
}
}
// 刷新全部缓存
reloadAllTaskPlanCache();
return ResultBean.success("操作成功");
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -535,6 +559,10 @@ public class SysTaskPlanController extends CoreBaseController {
, sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam());
}
}
// 刷新全部缓存
reloadAllTaskPlanCache();
return ResultBean.success("操作成功");
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -566,8 +594,7 @@ public class SysTaskPlanController extends CoreBaseController {
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition",
"attachment;fileName=" + URLEncoder.encode(excelFile.getName(), "UTF-8"));
response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(excelFile.getName(), "UTF-8"));
response.flushBuffer();
BufferedInputStream bis = null;
@ -632,6 +659,9 @@ public class SysTaskPlanController extends CoreBaseController {
}
}
// 刷新全部缓存
reloadAllTaskPlanCache();
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -660,4 +690,18 @@ public class SysTaskPlanController extends CoreBaseController {
throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build();
}
}
private void putTaskPlanCache(SysTaskPlan plan){
String redisKey = CommonConstWords.REDIS_PREFIX_TASK_LOG_LEVEL + ":" + plan.getGroupName() + "." + plan.getName();
redisRes.putObject(redisKey, plan.getLogLevelVal(), -1);
}
private void removeTaskPlanCache(SysTaskPlan plan){
String redisKey = CommonConstWords.REDIS_PREFIX_TASK_LOG_LEVEL + ":" + plan.getGroupName() + "." + plan.getName();
redisRes.deleteKey(redisKey);
}
private void reloadAllTaskPlanCache(){
systemInitService.reloadTaskPlanLogLevel();
}
}

@ -1,38 +1,38 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.apiservice.serviceimpl.mdm.SysToolSyncDataService;
import cn.estsh.i3plus.pojo.mdm.bean.busi.core.MdmGearCoreBusiExtd;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
import cn.estsh.impp.framework.boot.mdm.mq.BaseMdmDataSyncQueueReceiver;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Configuration;
import static cn.estsh.i3plus.platform.common.util.MdmConstWords.QUEUE_MDM_SYNC_DATA_CORE;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-05-28 16:54
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.mdm.sync:true}' == 'true'")
@Configuration
public class MdmDataSyncQueueReceiver extends BaseMdmDataSyncQueueReceiver {
/**
*
*/
public MdmDataSyncQueueReceiver() {
putMdmDataRef(SysToolSyncDataService.class, MdmGear.class, MdmGearCoreBusiExtd.class);
}
@Override
@RabbitListener(queues = QUEUE_MDM_SYNC_DATA_CORE)
public void syncMasterData(String syncDataStr, Channel channel, Message message) {
processSyncMasterData(syncDataStr, channel, message);
}
}
//package cn.estsh.i3plus.core.apiservice.mq;
//
//import cn.estsh.i3plus.core.apiservice.serviceimpl.mdm.SysToolSyncDataService;
//import cn.estsh.i3plus.pojo.mdm.bean.busi.core.MdmGearCoreBusiExtd;
//import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
//import cn.estsh.impp.framework.boot.mdm.mq.BaseMdmDataSyncQueueReceiver;
//import com.rabbitmq.client.Channel;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
//import org.springframework.context.annotation.Configuration;
//
//import static cn.estsh.i3plus.platform.common.util.MdmConstWords.QUEUE_MDM_SYNC_DATA_CORE;
//
///**
// * @Description :
// * @Reference :
// * @Author : yunhao
// * @CreateDate : 2020-05-28 16:54
// * @Modify:
// **/
//@ConditionalOnExpression("'${impp.mq.queue.mdm.sync:true}' == 'true'")
//@Configuration
//public class MdmDataSyncQueueReceiver extends BaseMdmDataSyncQueueReceiver {
//
// /**
// * 初始化类关系
// */
// public MdmDataSyncQueueReceiver() {
// putMdmDataRef(SysToolSyncDataService.class, MdmGear.class, MdmGearCoreBusiExtd.class);
// }
//
// @Override
// @RabbitListener(queues = QUEUE_MDM_SYNC_DATA_CORE)
// public void syncMasterData(String syncDataStr, Channel channel, Message message) {
// processSyncMasterData(syncDataStr, channel, message);
// }
//}

@ -76,7 +76,7 @@ public class MessageLetterQueueReceiver {
if (!StringUtils.isBlank(msg.getMessageReceiversId())) {
String[] userIds = msg.getMessageReceiversId().split(",");
if (userIds != null && userIds.length > 0) {
if (userIds.length > 0) {
List<SysUser> userList = personnelService.findSysUserByIds(StringTool.getArrayLong(userIds));
if (userList != null && userList.size() > 0) {

@ -15,6 +15,7 @@ import cn.estsh.impp.framework.boot.util.RedisCacheTool;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
@ -60,26 +61,40 @@ public class MessageMailQueueReceiver {
if (msg.getMessageSendTime() == null) {
msg.setMessageSendTime(TimeTool.getNowTime(true));
}
// 持久化消息化消息并初始化状态
ConvertBean.serviceModelInitialize(msg, msg.getMessageSenderNameRdd());
msg.setSendStatus(ImppEnumUtil.MESSAGE_SEND_STATUS.SENDING.getValue());
msg = sysMessageService.insertSysMessage(msg);
// 默认发送成功
msg.setSendStatus(ImppEnumUtil.MESSAGE_SEND_STATUS.SEND_SUCCESS.getValue());
// 设置邮件主题内容及收件人
mailUtil.init();
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());
// 判断收件人类型
if (msg.getMessageReceiverType() != null) {
if (msg.getMessageReceiverType().intValue() == ImppEnumUtil.MESSAGE_RECEIVER_TYPE.URGENT.getValue()) {
// 判断是否为系统紧急提示 微服注册状态提示
mailUtil.setTo(RedisCacheTool.getSysConfigStrVal(PlatformConstWords.CONTACT_MAIL));
// 次数过于频繁
try {
mailUtil.send();
} catch (Exception e) {
saveSendErrorMsg(msg, RedisCacheTool.getSysConfigStrVal(PlatformConstWords.CONTACT_MAIL), e);
}
} else if (msg.getMessageReceiverType().intValue() == ImppEnumUtil.MESSAGE_RECEIVER_TYPE.EXTERNAL.getValue()) {
//判断是否为外部邮件
mailUtil.setTo(StringUtils.split(msg.getMessageReceiversNameRdd(), ","));
try {
mailUtil.send();
} catch (Exception e) {
saveSendErrorMsg(msg, RedisCacheTool.getSysConfigStrVal(PlatformConstWords.CONTACT_MAIL), e);
}
} else if (msg.getMessageReceiverType().intValue() == ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()) {
// 收件人信息
@ -106,7 +121,12 @@ public class MessageMailQueueReceiver {
sysMessageService.insertSysRefUserMessage(refUserMessage);
mailUtil.setTo(sysUser.getUserEmail());
try {
mailUtil.send();
} catch (Exception e) {
saveSendErrorMsg(msg, RedisCacheTool.getSysConfigStrVal(PlatformConstWords.CONTACT_MAIL), e);
}
}
}
}
@ -132,4 +152,37 @@ public class MessageMailQueueReceiver {
LOGGER.info("[Core Email] Email Id:{} , 耗时{}, Message Info :{}", msg.getId(), System.currentTimeMillis() - startTime, JSON.toJSONString(msg));
}
}
/**
*
*
* @param message
* @param mark
* @param e
*/
private void saveSendErrorMsg(SysMessage message, String mark, Exception e) {
if (message == null) {
return;
}
// 更新消息发送状态
message.setSendStatus(ImppEnumUtil.MESSAGE_SEND_STATUS.SEND_FAIL.getValue());
StringBuilder errorMsg = new StringBuilder();
// 校验标识是否存在
if (StringUtils.isNotBlank(mark)) {
errorMsg.append("发送标识【");
errorMsg.append(mark);
errorMsg.append("】");
}
// 拼接异常信息
errorMsg.append(ExceptionUtils.getMessage(e));
errorMsg.append("\r\n");
if (!StringUtils.isBlank(message.getErrorMessage())) {
errorMsg.insert(0, message.getErrorMessage());
}
message.setErrorMessage(errorMsg.toString());
}
}

@ -1,10 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionPlanService;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -69,6 +66,8 @@ public class SystemInitService implements ISystemInitService {
@Autowired
private ISysPojoVersionPlanService pojoVersionPlanService;
@Autowired
private ISysTaskPlanService sysTaskPlanService;
@Resource(name= CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@ -101,6 +100,10 @@ public class SystemInitService implements ISystemInitService {
LOGGER.info("加载 对象版本控制信息");
reloadPojoVersionPlan();
LOGGER.info("加载 对象版本控制信息 信息完成");
LOGGER.info("加载 定时任务日志等级");
reloadTaskPlanLogLevel();
LOGGER.info("加载 定时任务日志等级 信息完成");
}catch (Exception e){
e.printStackTrace();
}
@ -283,6 +286,7 @@ public class SystemInitService implements ISystemInitService {
}
}
@Override
public void putAndLoadSysMenu() {
SysLocaleResource resource = new SysLocaleResource();
@ -415,4 +419,15 @@ public class SystemInitService implements ISystemInitService {
}
}
}
@Override
public void reloadTaskPlanLogLevel() {
List<SysTaskPlan> sysTaskPlanList = sysTaskPlanService.listSysTaskPlan();
if (CollectionUtils.isNotEmpty(sysTaskPlanList)){
for (SysTaskPlan plan : sysTaskPlanList) {
String redisKey =CommonConstWords.REDIS_PREFIX_TASK_LOG_LEVEL + ":" + plan.getGroupName() + "." + plan.getName();
redisRes.putObject(redisKey, plan.getLogLevelVal(), -1);
}
}
}
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISysLogService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService;
import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
@ -76,6 +77,7 @@ public class SysTaskPlanService implements ISysTaskPlanService {
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "修改任务计划", notes = "修改任务计划")
public void updateSysTaskPlan(SysTaskPlan sysTaskPlan) {
SysTaskPlan originSysTaskPlan = sysTaskPlanRDao.getById(sysTaskPlan.getId());
@ -103,6 +105,7 @@ public class SysTaskPlanService implements ISysTaskPlanService {
originSysTaskPlan.setIsInternalUser(sysTaskPlan.getIsInternalUser());
originSysTaskPlan.setNoticeChannel(sysTaskPlan.getNoticeChannel());
originSysTaskPlan.setNoticeMethod(sysTaskPlan.getNoticeMethod());
originSysTaskPlan.setLogLevel(sysTaskPlan.getLogLevel());
if(StringUtils.isNotBlank(sysTaskPlan.getLastRunDateTime())){
originSysTaskPlan.setLastRunDateTime(sysTaskPlan.getLastRunDateTime());
@ -181,6 +184,7 @@ public class SysTaskPlanService implements ISysTaskPlanService {
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询任务计划", notes = "根据任务计划名称与组名称查询")
public SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName) {
return sysTaskPlanRDao.getByProperty(

@ -257,7 +257,7 @@ public class MailUtil {
} catch (SMTPAddressFailedException e) {
LOGGER.error(e.getClass() + "\t" + e.getMessage());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_RECIPIENT_NOT_EXIST.getCode())
.setErrorDetail(ImppExceptionEnum.MAIL_RECIPIENT_NOT_EXIST.getDescription())
.setErrorSolution("请重新设置收件人")
@ -265,7 +265,7 @@ public class MailUtil {
} catch (AuthenticationFailedException e) {
LOGGER.error(e.getClass() + "\t" + e.getMessage());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_LOGIN_PASS_ERROR.getCode())
.setErrorDetail(ImppExceptionEnum.MAIL_LOGIN_PASS_ERROR.getDescription())
.setErrorSolution("请重新设置账号或密码")
@ -273,19 +273,27 @@ public class MailUtil {
} catch (MessagingException e) {
LOGGER.error(e.getClass() + "\t" + e.getMessage());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getCode())
.setErrorDetail(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getDescription())
.setErrorSolution("请重新设置邮件服务器地址或端口")
.build();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
LOGGER.error(e.getClass() + "\t" + e.getMessage());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getCode())
.setErrorDetail(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getDescription())
.setErrorSolution("请重新设置邮件服务器地址或端口")
.build();
} catch (Exception e) {
LOGGER.error(e.getClass() + "\t" + e.getMessage());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getCode())
.setErrorDetail(ImppExceptionEnum.MAIL_SERVER_CONFIG_ERROR.getDescription())
.setErrorSolution("邮件发送异常:%s", e.getMessage())
.build();
}
}
}

@ -47,10 +47,10 @@
</RollingRandomAccessFile>
<!-- 应用调度日志文件-->
<RollingRandomAccessFile name="log_schedule_file"
fileName="${logFileRootPath}/${project.name}-schedule.log"
<ImppLog4j2File name="log_schedule_file"
filePath="${logFileRootPath}/schedule/"
append="false" immediateFlush="false" bufferedIO="true" bufferSize="8192"
filePattern="${logFileRootPath}/$${date:yyyy-MM}/${project.name}-schedule-%d{yyyy-MM-dd}-%i.log">
filePattern="${logFileRootPath}/$${date:yyyy-MM}/task-name-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${file_pattern}"/>
<Filters>
@ -71,7 +71,7 @@
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
</ImppLog4j2File>
<!--控制台日志-->
<console name="console" target="SYSTEM_OUT" follow="true">

Loading…
Cancel
Save