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/