• 如何在Spring Boot框架中打印响应的日志?


    在 Spring Boot 框架中,可以使用拦截器来打印响应的日志。

    通过自定义一个拦截器,可以在响应返回给客户端之前捕获响应信息,并将其记录到日志中。

    以下是在 Spring Boot 框架中打印响应日志的步骤:

    1. 创建一个拦截器类,并实现 HandlerInterceptor 接口。例如,您可以创建一个名为 ResponseLoggingInterceptor 的类。

      import org.springframework.web.servlet.HandlerInterceptor;
      import org.springframework.web.servlet.ModelAndView;
      
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      public class ResponseLoggingInterceptor implements HandlerInterceptor {
      
          @Override
          public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
              // 在响应返回给客户端之后被调用
              // 记录响应信息到日志
              String logMessage = "RESPONSE - " +
                      "Status: " + response.getStatus() +
                      " | Request URI: " + request.getRequestURI();
              // 使用日志框架打印日志,例如使用 SLF4J: LoggerFactory.getLogger(ResponseLoggingInterceptor.class).info(logMessage);
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18

      在上面的示例中,我们在 postHandle 方法中记录响应的状态码和请求的URI。您可以根据需要扩展此方法,记录更多的响应信息。

    2. 注册拦截器:在您的配置类中,将拦截器注册到 Spring Boot 应用程序中。

    import org.springframework.context.annotation.Configuration;
       import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
       import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
       @Configuration
       public class WebConfig implements WebMvcConfigurer {
    
           @Override
           public void addInterceptors(InterceptorRegistry registry) {
               registry.addInterceptor(new ResponseLoggingInterceptor());
           }
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在上述示例中,我们实现了 WebMvcConfigurer 接口,并重写了 addInterceptors 方法。在该方法中,我们将自定义的拦截器 ResponseLoggingInterceptor 添加到拦截器注册表中。

    1. 运行应用程序:现在,当您运行 Spring Boot 应用程序并发送请求时,拦截器将捕获每个响应并将其记录到日志中。

    请注意

    拦截器记录的日志将在每个请求的响应之后生成。这意味着拦截器不会记录在发生错误或异常时的响应。如果您需要记录这些情况下的响应,您可能需要结合异常处理机制来实现。

  • 相关阅读:
    全网最牛软件测试学习路线图(含学习路线图+学习阶段+学习视频+学习工具)
    百度智能云创新业务部总经理李想:发挥AI企业科技创新优势 助力职业教育人才扬帆远航
    排序算法模板
    路由懒加载
    【GitLab CI/CD、SpringBoot、Docker】GitLab CI/CD 部署SpringBoot应用,部署方式Docker
    软件测试(功能、工具、接口、性能、自动化、测开)详解
    【QT】day5
    Unity之ShaderGraph如何实现无贴图水球效果
    [​DuckDB] 多核算子并行的源码解析
    如何借助自动化工具落地DevOps|含低代码与DevOps应用实践
  • 原文地址:https://blog.csdn.net/m0_47406832/article/details/136416580