fix(log/httptrace-pro): 移除拦截 /error

This commit is contained in:
2023-12-28 22:50:22 +08:00
parent 76e282c796
commit 7b12454ce6

View File

@@ -17,6 +17,7 @@
package top.charles7c.continew.starter.log.httptracepro.handler; package top.charles7c.continew.starter.log.httptracepro.handler;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.ttl.TransmittableThreadLocal; import com.alibaba.ttl.TransmittableThreadLocal;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -24,6 +25,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.lang.NonNull; import org.springframework.lang.NonNull;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
@@ -55,7 +57,7 @@ public class LogInterceptor implements HandlerInterceptor {
public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response,
@NonNull Object handler) { @NonNull Object handler) {
Clock timestamp = Clock.systemUTC(); Clock timestamp = Clock.systemUTC();
if (this.isRequestRecord(handler)) { if (this.isRequestRecord(handler, request)) {
if (Boolean.TRUE.equals(properties.getIsPrint())) { if (Boolean.TRUE.equals(properties.getIsPrint())) {
log.info("[{}] {}", request.getMethod(), request.getRequestURI()); log.info("[{}] {}", request.getMethod(), request.getRequestURI());
} }
@@ -142,12 +144,18 @@ public class LogInterceptor implements HandlerInterceptor {
* 是否要记录日志 * 是否要记录日志
* *
* @param handler 处理器 * @param handler 处理器
* @param request 请求对象
* @return true需要记录false不需要记录 * @return true需要记录false不需要记录
*/ */
private boolean isRequestRecord(Object handler) { private boolean isRequestRecord(Object handler, HttpServletRequest request) {
if (!(handler instanceof HandlerMethod handlerMethod)) { if (!(handler instanceof HandlerMethod handlerMethod)) {
return false; return false;
} }
// 不拦截 /error
ServerProperties serverProperties = SpringUtil.getBean(ServerProperties.class);
if (request.getRequestURI().equals(serverProperties.getError().getPath())) {
return false;
}
// 如果接口被隐藏,不记录日志 // 如果接口被隐藏,不记录日志
Operation methodOperation = handlerMethod.getMethodAnnotation(Operation.class); Operation methodOperation = handlerMethod.getMethodAnnotation(Operation.class);
if (null != methodOperation && methodOperation.hidden()) { if (null != methodOperation && methodOperation.hidden()) {