Helius
2021-03-05 094a2ce35d60abd7ae28a7d9f9ec863ed4ac652d
modify
4 files added
97 ■■■■■ changed files
src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java 51 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java 11 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/platform/SysExceptionDetailDao.xml 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
New file
@@ -0,0 +1,51 @@
package com.xcong.excoin.common.aop;
import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity;
import com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.InetAddress;
import java.util.Date;
/**
 * @author wzy
 * @date 2021-03-05
 **/
@Slf4j
@Aspect
@Component
public class ExceptionCatchAspect {
    @Autowired
    private SysExceptionDetailDao sysExceptionDetailDao;
    @Pointcut("execution(* com.xcong.excoin..*.*(..))")
    public void exceptionCatch() {
    }
    @AfterThrowing(pointcut = "exceptionCatch()", throwing = "ex")
    public void afterThrows(JoinPoint jp, Exception ex) throws Exception {
        SysExceptionDetailEntity exceptionData = new SysExceptionDetailEntity();
        exceptionData.setCreateTime(new Date());
        exceptionData.setMachine(InetAddress.getLocalHost().getHostName());
        exceptionData.setAddress(InetAddress.getLocalHost().getHostAddress());
        exceptionData.setExceptionMsg(printStackTraceToString(ex.fillInStackTrace()));
        exceptionData.setSimpleMsg(ex.getMessage());
        sysExceptionDetailDao.insert(exceptionData);
        throw ex;
    }
    public String printStackTraceToString(Throwable t) {
        StringWriter sw = new StringWriter();
        t.printStackTrace(new PrintWriter(sw, true));
        return sw.getBuffer().toString();
    }
}
src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java
New file
@@ -0,0 +1,30 @@
package com.xcong.excoin.common.system.bean;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * @author wzy
 * @date 2021-03-05
 **/
@Data
@TableName("sys_exception_detail")
public class SysExceptionDetailEntity {
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    private Date createTime;
    private String machine;
    private String simpleMsg;
    private String exceptionMsg;
    private String address;
}
src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java
New file
@@ -0,0 +1,11 @@
package com.xcong.excoin.modules.platform.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity;
/**
 * @author wzy
 * @date 2021-03-05
 **/
public interface SysExceptionDetailDao extends BaseMapper<SysExceptionDetailEntity> {
}
src/main/resources/mapper/platform/SysExceptionDetailDao.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao">
</mapper>