Class RequestLoggingFilter

All Implemented Interfaces:
jakarta.servlet.Filter, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, EnvironmentCapable, ServletContextAware

@Component @Order(1) public class RequestLoggingFilter extends OncePerRequestFilter
Generates unique request IDs and logs HTTP request completion metrics including duration and status.
  • Constructor Details

    • RequestLoggingFilter

      public RequestLoggingFilter()
  • Method Details

    • doFilterInternal

      protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOException
      Wraps each request with a unique request ID, measures execution time, and logs completion details. Ensures MDC is properly cleaned up after request processing regardless of success or failure.
      Specified by:
      doFilterInternal in class OncePerRequestFilter
      Parameters:
      request - the HTTP request
      response - the HTTP response
      filterChain - the filter chain to continue processing
      Throws:
      jakarta.servlet.ServletException - if request processing fails
      IOException - if an I/O error occurs during filtering