@WebFilter(filterName = "LogFilter", urlPatterns = "/*")
@Component
public class LogFilter extends OncePerRequestFilter {
private Logger log = LoggerFactory.getLogger(LogFilter.class);
@Override
protected void doFilterInternal(@NonNull HttpServletRequest httpServletRequest, @NonNull HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
String remoteAddr = ServletUtil.getClientIP(httpServletRequest);
log.debug("Starting url: [{}], method: [{}], ip: [{}]", httpServletRequest.getRequestURL(), httpServletRequest.getMethod(), remoteAddr);
filterChain.doFilter(httpServletRequest, httpServletResponse);
log.debug("End url: [{}], method: [{}], ip: [{}]", httpServletRequest.getRequestURL(), httpServletRequest.getMethod(), remoteAddr);
}
}
request中可以获取的不止这些 你可以按需添加
效果

本文介绍了一种使用Spring Boot和OncePerRequestFilter实现的日志过滤器设计,该过滤器能够记录HTTP请求和响应的详细信息,包括URL、方法类型和客户端IP地址。

2344

被折叠的 条评论
为什么被折叠?



