Polish "Make logError() in AbstractErrorWebExceptionHandler overrideable"
See gh-17863
This commit is contained in:
parent
7ea612beaf
commit
6328f2e8a8
|
|
@ -263,6 +263,25 @@ public abstract class AbstractErrorWebExceptionHandler implements ErrorWebExcept
|
|||
.flatMap((response) -> write(exchange, response));
|
||||
}
|
||||
|
||||
private boolean isDisconnectedClientError(Throwable ex) {
|
||||
return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName())
|
||||
|| isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage());
|
||||
}
|
||||
|
||||
private boolean isDisconnectedClientErrorMessage(String message) {
|
||||
message = (message != null) ? message.toLowerCase() : "";
|
||||
return (message.contains("broken pipe") || message.contains("connection reset by peer"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the {@code throwable} error for the given {@code request} and {@code response}
|
||||
* exchange. The default implementation logs all errors at debug level. Additionally,
|
||||
* any internal server error (500) is logged at error level.
|
||||
* @param request the request that was being handled
|
||||
* @param response the response that was being sent
|
||||
* @param throwable the error to be logged
|
||||
* @since 2.2.0
|
||||
*/
|
||||
protected void logError(ServerRequest request, ServerResponse response, Throwable throwable) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug(request.exchange().getLogPrefix() + formatError(throwable, request));
|
||||
|
|
@ -274,16 +293,6 @@ public abstract class AbstractErrorWebExceptionHandler implements ErrorWebExcept
|
|||
}
|
||||
}
|
||||
|
||||
private boolean isDisconnectedClientError(Throwable ex) {
|
||||
return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName())
|
||||
|| isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage());
|
||||
}
|
||||
|
||||
private boolean isDisconnectedClientErrorMessage(String message) {
|
||||
message = (message != null) ? message.toLowerCase() : "";
|
||||
return (message.contains("broken pipe") || message.contains("connection reset by peer"));
|
||||
}
|
||||
|
||||
private String formatError(Throwable ex, ServerRequest request) {
|
||||
String reason = ex.getClass().getSimpleName() + ": " + ex.getMessage();
|
||||
return "Resolved [" + reason + "] for HTTP " + request.methodName() + " " + request.path();
|
||||
|
|
|
|||
Loading…
Reference in New Issue