我想在我的应用程序中实现CommonsRequestLoggingFilter并将请求和响应转换为Java代码:
@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
loggingFilter.setIncludeClientInfo(true);
loggingFilter.setIncludeQueryString(true);
loggingFilter.setIncludePayload(true);
loggingFilter.setIncludeHeaders(false);
return loggingFilter;
}
如何将有效负载放入Rest控制器代码中?示例:
@RestController
public class LoggingDemoController {
@GetMapping("/demo/greeting")
public String sayHello(){
// Get here the payload from CommonsRequestLoggingFilter
return "Hello Stranger !!!";
}
}
这有可能吗?
答案 0 :(得分:0)
可以通过添加bean定义来配置Spring Boot应用程序以启用请求日志记录:
@Configuration
public class RequestLoggingFilterConfig {
@Bean
public CommonsRequestLoggingFilter logFilter() {
CommonsRequestLoggingFilter filter
= new CommonsRequestLoggingFilter();
filter.setIncludeQueryString(true);
filter.setIncludePayload(true);
filter.setMaxPayloadLength(10000);
filter.setIncludeHeaders(false);
filter.setAfterMessagePrefix("REQUEST DATA : ");
return filter;
}
}
此外,此日志记录过滤器要求将日志级别设置为DEBUG
<logger name="org.springframework.web.filter.CommonsRequestLoggingFilter">
<level value="DEBUG" />
</logger>