public static void logResponse(Logger logger, RequestLog log, LogLevel requestLogLevel,
Function<HttpHeaders, HttpHeaders> requestHeadersSanitizer,
Function<Object, Object> requestContentSanitizer,
LogLevel successfulResponseLogLevel,
LogLevel failedResponseLogLevel,
Function<HttpHeaders, HttpHeaders> responseHeadersSanitizer,
Function<Object, Object> responseContentSanitizer) {
final LogLevel level = log.responseCause() == null ? successfulResponseLogLevel
: failedResponseLogLevel;
if (level.isEnabled(logger)) {
if (log.responseCause() == null) {
level.log(logger, RESPONSE_FORMAT,
log.toStringResponseOnly(responseHeadersSanitizer, responseContentSanitizer));
} else {
if (!requestLogLevel.isEnabled(logger)) {
level.log(logger, REQUEST_FORMAT, log.toStringRequestOnly(requestHeadersSanitizer,
responseContentSanitizer));
}
level.log(logger, RESPONSE_FORMAT,
log.toStringResponseOnly(responseHeadersSanitizer, responseContentSanitizer),
log.responseCause());
}
}
}
}