From 094a2ce35d60abd7ae28a7d9f9ec863ed4ac652d Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 05 Mar 2021 10:27:56 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java | 30 +++++++++++++++ src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java | 11 +++++ src/main/resources/mapper/platform/SysExceptionDetailDao.xml | 5 ++ src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java | 51 +++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java new file mode 100644 index 0000000..c3249aa --- /dev/null +++ b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java @@ -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(); + } +} diff --git a/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java b/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java new file mode 100644 index 0000000..4e53e4b --- /dev/null +++ b/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java @@ -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; +} diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java new file mode 100644 index 0000000..7d944ee --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java @@ -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> { +} diff --git a/src/main/resources/mapper/platform/SysExceptionDetailDao.xml b/src/main/resources/mapper/platform/SysExceptionDetailDao.xml new file mode 100644 index 0000000..21ac6c5 --- /dev/null +++ b/src/main/resources/mapper/platform/SysExceptionDetailDao.xml @@ -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> \ No newline at end of file -- Gitblit v1.9.1