java - Spring Boot 中仅在请求记录 CommonsRequestLoggingFilter 之前设置

标签 java spring spring-boot logging

CommonsRequestLoggingFilter 在记录请求方面相当不错,但在我的例子中,它在请求处理前后记录相同的内容,这是重复和冗余的。我想摆脱请求处理后的日志,但我找不到该怎么做。有什么想法吗?

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CommonsRequestLoggingFilter;

@Configuration
public class RequestLoggingFilterConfig {

    @Bean
    public CommonsRequestLoggingFilter logFilter() {
        CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
        filter.setIncludeClientInfo(true);
        filter.setIncludeHeaders(true);
        filter.setIncludePayload(false);
        filter.setIncludeQueryString(true);
        return filter;
    }
}

我从 here. 开始

最佳答案

类(class)org.springframework.web.filter.CommonsRequestLoggingFilter只是 org.springframework.web.filter.AbstractRequestLoggingFilter 的一个子类.因此跳过 CommonsRequestLoggingFilter 并编写自己的子类,并将覆盖的方法 afterRequest() 留空。

public class CustomizedRequestLoggingFilter extends AbstractRequestLoggingFilter {

    @Override
    protected void beforeRequest(HttpServletRequest httpServletRequest, String message) {
        this.logger.debug(message);
    }

    @Override
    protected void afterRequest(HttpServletRequest httpServletRequest, String message) {

    }
}

使用此类代替 org.springframework.web.filter.CommonsRequestLoggingFilter

关于java - Spring Boot 中仅在请求记录 CommonsRequestLoggingFilter 之前设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54515181/

相关文章:

hibernate - 在 Spring Boot/Hibernate/JPA 中指定连接表的表名和字段名

java - Gradle Spring Boot 排除记录器错误

java - 如何将原 Material 转化为成品,使所有产品的可用天数最大化

java - 未找到@Optional注释

java - 将 SimpleMessageListenerContainer 初始化为已停止

java - primefaces 的数据模式不显示刷新数据形式的支持 bean

spring-boot - 'antMatchers' 是什么意思?

java - 是否有机会安装尚未发布的插件损坏 eclipse 安装

java - 使 Java 小程序占用父元素的 100% 高度

java - EmbeddedDatabaseBuilder & org.h2.jdbc.JdbcSQLException : Wrong user name or password