From a182066beaca9a0dab242b87786b8161257b173c Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Fri, 23 Jan 2026 10:59:05 +0100 Subject: [PATCH] fix: use proper exception chaining with 'raise from' in glogging.py Use 'raise X from e' syntax instead of just 'raise X' when wrapping exceptions. This provides more accurate exception chaining messages ("The above exception was the direct cause of" vs "During handling of"). Closes #2360 --- gunicorn/glogging.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gunicorn/glogging.py b/gunicorn/glogging.py index e34fcd5f..ade25eee 100644 --- a/gunicorn/glogging.py +++ b/gunicorn/glogging.py @@ -237,7 +237,7 @@ class Logger: ValueError, TypeError ) as exc: - raise RuntimeError(str(exc)) + raise RuntimeError(str(exc)) from exc elif cfg.logconfig_json: config = CONFIG_DEFAULTS.copy() if os.path.exists(cfg.logconfig_json): @@ -252,7 +252,7 @@ class Logger: ValueError, TypeError ) as exc: - raise RuntimeError(str(exc)) + raise RuntimeError(str(exc)) from exc elif cfg.logconfig: if os.path.exists(cfg.logconfig): defaults = CONFIG_DEFAULTS.copy() @@ -442,8 +442,8 @@ class Logger: # syslog facility try: facility = SYSLOG_FACILITIES[cfg.syslog_facility.lower()] - except KeyError: - raise RuntimeError("unknown facility name") + except KeyError as exc: + raise RuntimeError("unknown facility name") from exc # parse syslog address socktype, addr = parse_syslog_address(cfg.syslog_addr)