Newer
Older
stockTray / EastLineServer / src / main / java / me / bello / eastline / ExceptionController.java
bello on 12 Aug 2020 1 KB 新增控制台
package me.bello.eastline;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.web.servlet.error.ErrorAttributes;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.ServletWebRequest;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

@RestController
public class ExceptionController implements ErrorController {

    Logger logger = LoggerFactory.getLogger("ExceptionController");

    @Resource
    private ErrorAttributes errorAttributes;

    @Override
    public String getErrorPath() {
        return "/error";
    }

    @GetMapping("/error")
    public String error(HttpServletRequest request){
        ServletWebRequest servletWebRequest = new ServletWebRequest(request);
        Map<String, Object> errorAttributesData = errorAttributes.getErrorAttributes(servletWebRequest, true);
        // 状态码
        Integer status = (Integer) errorAttributesData.get("status");
        // 请求路径
        String path = (String) errorAttributesData.get("path");
        String messageFound = (String) errorAttributesData.get("message");
        // 异常信息
        String trace = (String) errorAttributesData.get("trace");

        logger.error(status + "\n" + path + "\n" + messageFound + "\n" + trace);

        return "error";
    }
}