【问题标题】:CommonsRequestLoggingFilter not logging when extending扩展时 CommonsRequestLoggingFilter 不记录
【发布时间】:2021-08-06 19:36:30
【问题描述】:

当我添加覆盖方法时,以下代码不会记录。 如果我将它们注释掉,它会在我在 ControllerAdvice 中发出 logger.error() 时记录下来。 在 application.properties 中使用以下属性。 logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=TRACE
使用 Spring Boot 2.4.5

@Bean 
public CommonsRequestLoggingFilter logFilter() {        
     CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter()
     {
         @Override
         protected void beforeRequest(HttpServletRequest request, String message) {
             logger.info(message);
         }

         @Override
         protected void afterRequest(HttpServletRequest request, String message) {
             logger.info(message);
         }

        };

        filter.setIncludeClientInfo(true);
        filter.setIncludeHeaders(true);
        filter.setIncludePayload(true);
        filter.setIncludeQueryString(true);
        filter.setBeforeMessagePrefix("Request started => ");
        filter.setAfterMessagePrefix("Request ended => ");
        
        
        return filter;
    
}

【问题讨论】:

    标签: spring spring-boot logging


    【解决方案1】:

    必须在声明 bean CommonsRequestLoggingFilter 的类上设置日志记录级别

    假设您在 RequestLoggingConfiguration 类中声明了您的 bean,那么您将不得不在您的 application.properties 中进行设置:

    logging.level.com.mypackage.myproject.RequestLoggingConfiguration=TRACE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多