java - 仅在 Spring Boot 中的请求日志之前设置 CommonsRequestLoggingFilter
问题描述
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;
}
}
我从这里开始。
解决方案
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
推荐阅读
- angular - 我怎样才能把我的侧边栏放在页面的右侧有角度的?
- facebook - 供个人使用的 Facebook 应用程序 - 没有应用程序审核流程
- apache-kafka - 我的 Producer(SQL Server)已启动,而 Kafka 已关闭。如何重新处理到kafka的消息?
- javascript - 如果达到或超过最大数量,如何删除输入?PHP 和 JavaScript
- php - 我想在一个表中查看这些所有产品....但它显示在每个产品的不同表中
- algorithm - 确定下一步要去哪里的算法
- laravel - 如何使用 Laravel 分页进行数组分页?
- reactjs - 如何优化 async fn 中的 setState?
- python - django 中的 GetCategories ebay API 调用
- django - YML 配置的 django elasticbeanstalk 部署问题