package com.medicine.management_side.bean;
import com.medicine.management_side.service.LogsService;
import com.medicine.management_side.utils.DateUtil;
import com.medicine.management_side.utils.PageData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import static com.medicine.management_side.utils.UuidUtil.get32UUID;
/**
* 发生异常时用户记录用户异常信息到数据库
*/
@ControllerAdvice
public class ExceptionHandlers {
@Autowired
private LogsService logsService;
Logger logger = LoggerFactory.getLogger(ExceptionHandlers.class);
@ExceptionHandler(value = Exception.class)
@ResponseBody
public void handle(Exception e, ServletRequest servletRequest) {
try {
StackTraceElement stackTraceElement = e.getStackTrace()[0];
HttpServletRequest request = (HttpServletRequest)servletRequest;
String username=request.getParameter("username");//用户登陆用户名
String errorInfo = e.toString() + ",errorMassage:" + stackTraceElement + "," + "errorLine:" + stackTraceElement.getLineNumber();//异常信息
PageData pageDate = new PageData();
String uuid=get32UUID();
pageDate.put("id",uuid);
pageDate.put("msg",errorInfo);//异常信息
pageDate.put("userphone",username);//用户登陆用户名
pageDate.put("isDelete",0);
pageDate.put("createTime", DateUtil.getTime());
pageDate.put("updateTime", DateUtil.getTime());
logsService.addExceptionLogs(pageDate);//保存到数据库
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
springBoot全局异常处理并写入到数据库
最新推荐文章于 2022-08-22 11:33:15 发布