Spring Boot provides the CommonsRequestLoggingFilter
for this purpose.
You configure it like so:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CommonsRequestLoggingFilter;
@Configuration
public class RequestLoggingFilterConfigurer {
@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
filter.setIncludeQueryString(true);
filter.setIncludePayload(true);
// truncate payloads
filter.setMaxPayloadLength(1000);
filter.setIncludeHeaders(false);
filter.setAfterMessagePrefix("Request received: ");
return filter;
}
}
And add a logger definition to your logback.xml
like so:
<logger name="org.springframework.web.filter.CommonsRequestLoggingFilter" level="DEBUG">
<appender-ref ref="REQUEST_RESPONSE_FILE_APPENDER"/>
</logger>