From 08ced452e1250313bc3d34533a55c4d44daf2a47 Mon Sep 17 00:00:00 2001 From: Jordan Brough Date: Sat, 30 Sep 2023 20:46:58 -0600 Subject: [PATCH] chore: Log errors handled by RequestExceptionHandler (#8013) - Logging this info is invaluable when using logs to track down the reason why a particular request failed. --- .../concerns/request_exception_handler.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/request_exception_handler.rb b/app/controllers/concerns/request_exception_handler.rb index 2f53fdc2b..ccab0090a 100644 --- a/app/controllers/concerns/request_exception_handler.rb +++ b/app/controllers/concerns/request_exception_handler.rb @@ -9,11 +9,14 @@ module RequestExceptionHandler def handle_with_exception yield - rescue ActiveRecord::RecordNotFound + rescue ActiveRecord::RecordNotFound => e + log_handled_error(e) render_not_found_error('Resource could not be found') - rescue Pundit::NotAuthorizedError + rescue Pundit::NotAuthorizedError => e + log_handled_error(e) render_unauthorized('You are not authorized to do this action') rescue ActionController::ParameterMissing => e + log_handled_error(e) render_could_not_create_error(e.message) ensure # to address the thread variable leak issues in Puma/Thin webserver @@ -41,6 +44,7 @@ module RequestExceptionHandler end def render_record_invalid(exception) + log_handled_error(exception) render json: { message: exception.record.errors.full_messages.join(', '), attributes: exception.record.errors.attribute_names @@ -48,6 +52,11 @@ module RequestExceptionHandler end def render_error_response(exception) + log_handled_error(exception) render json: exception.to_hash, status: exception.http_status end + + def log_handled_error(exception) + logger.info("Handled error: #{exception.inspect}") + end end