diff --git a/src/main/java/github/benjamin/equipreservebackend/exception/GlobalExceptionHandler.java b/src/main/java/github/benjamin/equipreservebackend/exception/GlobalExceptionHandler.java index b4bc036..ec4c1db 100644 --- a/src/main/java/github/benjamin/equipreservebackend/exception/GlobalExceptionHandler.java +++ b/src/main/java/github/benjamin/equipreservebackend/exception/GlobalExceptionHandler.java @@ -2,17 +2,23 @@ package github.benjamin.equipreservebackend.exception; import github.benjamin.equipreservebackend.response.ResponseCode; import github.benjamin.equipreservebackend.response.ResponseResult; +import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.security.authorization.AuthorizationDeniedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + @Slf4j @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(ApiException.class) public ResponseResult handleApiException(ApiException e) { + log.error("[API异常] 错误代码: {}, 错误信息: {}", e.getCode(), e.getMessage(), e); return ResponseResult.fail(e.getCode(), e.getMessage()); } @@ -22,10 +28,20 @@ public class GlobalExceptionHandler { } @ExceptionHandler(Exception.class) - public ResponseResult handleException(Exception e) { - // TODO 日志 - e.printStackTrace(); + public ResponseResult handleException(Exception e, HttpServletRequest request) { + log.error("[系统异常] 请求地址: {}, 方法: {}, 异常信息: {}, 请求参数: {}", + request.getRequestURI(), + request.getMethod(), + e.getMessage(), + getRequestParams(request), + e); return ResponseResult.fail(ResponseCode.UNKNOWN_ERROR,"服务器内部异常,请联系开发人员"); } + private String getRequestParams(HttpServletRequest request) { + Map paramMap = request.getParameterMap(); + return paramMap.entrySet().stream() + .map(entry -> entry.getKey() + "=" + Arrays.toString(entry.getValue())) + .collect(Collectors.joining(", ", "{", "}")); + } }