From adeec831fb066475f1ae3a9cf2b0a7fa23132334 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Wed, 18 Mar 2026 16:13:51 -0400 Subject: [PATCH 1/4] Replace print statements with logger.error in middleware.py --- web/middleware.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web/middleware.py b/web/middleware.py index c384a7a8e..caacef468 100644 --- a/web/middleware.py +++ b/web/middleware.py @@ -46,12 +46,12 @@ def process_exception(self, request, exception): sentry_sdk.capture_exception(exception) # Print exception details to console - print("\n=== Exception Details ===") - print(f"Exception Type: {type(exception).__name__}") - print(f"Exception Message: {str(exception)}") - print("\nTraceback:") + logger.error("=== Exception Details ===") + logger.error(f"Exception Type: {type(exception).__name__}") + logger.error(f"Exception Message: {str(exception)}") + logger.error("Traceback:") traceback.print_exc() - print("=====================\n") + logger.error("=====================") tb = traceback.format_exc() error_message = f"ERROR: {str(exception)}\n\n" f"Traceback:\n{tb}\n\n" f"Path: {request.path}" From f8837752ab6aa6ba4b3a67ab228aec05ded7d823 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Wed, 18 Mar 2026 16:24:37 -0400 Subject: [PATCH 2/4] Use lazy formatting and logger exc_info per review feedback --- web/middleware.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/web/middleware.py b/web/middleware.py index caacef468..3a5562330 100644 --- a/web/middleware.py +++ b/web/middleware.py @@ -47,11 +47,9 @@ def process_exception(self, request, exception): # Print exception details to console logger.error("=== Exception Details ===") - logger.error(f"Exception Type: {type(exception).__name__}") - logger.error(f"Exception Message: {str(exception)}") - logger.error("Traceback:") - traceback.print_exc() - logger.error("=====================") + logger.error("Exception Type: %s", type(exception).__name__) + logger.error("Exception Message: %s", exception) + logger.error("Traceback:", exc_info=True) tb = traceback.format_exc() error_message = f"ERROR: {str(exception)}\n\n" f"Traceback:\n{tb}\n\n" f"Path: {request.path}" From 99ac14fba3312adb0df800d671f5ec77308526a3 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Wed, 18 Mar 2026 16:29:40 -0400 Subject: [PATCH 3/4] Remove unreachable return None per review feedback --- web/middleware.py | 1 - 1 file changed, 1 deletion(-) diff --git a/web/middleware.py b/web/middleware.py index 3a5562330..8c3d026dc 100644 --- a/web/middleware.py +++ b/web/middleware.py @@ -65,7 +65,6 @@ def process_exception(self, request, exception): send_slack_message(error_message) return render(request, "500.html", status=500) - return None class WebRequestMiddleware: From 7ba5c5472033eaf43103b69a721e3c9a287ce9a1 Mon Sep 17 00:00:00 2001 From: diegomed11 Date: Wed, 18 Mar 2026 16:42:06 -0400 Subject: [PATCH 4/4] Use explicit exc_info tuple per review feedback --- web/middleware.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/middleware.py b/web/middleware.py index 8c3d026dc..5c4774e5e 100644 --- a/web/middleware.py +++ b/web/middleware.py @@ -49,9 +49,10 @@ def process_exception(self, request, exception): logger.error("=== Exception Details ===") logger.error("Exception Type: %s", type(exception).__name__) logger.error("Exception Message: %s", exception) - logger.error("Traceback:", exc_info=True) + exc_info = (type(exception), exception, exception.__traceback__) + logger.error("Traceback:", exc_info=exc_info) - tb = traceback.format_exc() + tb = "".join(traceback.format_exception(*exc_info)) error_message = f"ERROR: {str(exception)}\n\n" f"Traceback:\n{tb}\n\n" f"Path: {request.path}" if settings.DEBUG: