From 459a610d7beeaaeb2f60040d65a1bd20619d02b9 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Mon, 4 May 2026 13:55:26 +0300 Subject: [PATCH] Inline exception repr in subscriber error logs So Sentry (and any handler that drops exc_info) still surfaces the exception type and message. Co-Authored-By: Claude Opus 4.7 --- faststream_redis_timers/subscriber/usecase.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faststream_redis_timers/subscriber/usecase.py b/faststream_redis_timers/subscriber/usecase.py index 02e9887..14c863f 100644 --- a/faststream_redis_timers/subscriber/usecase.py +++ b/faststream_redis_timers/subscriber/usecase.py @@ -101,7 +101,7 @@ async def _consume(self, client: "Redis[bytes]", *, start_signal: anyio.Event) - try: fetched = await self._get_msgs(client, tg, limiter) except Exception as e: # noqa: BLE001 # pragma: no cover - self._log(log_level=logging.ERROR, message="Message fetch error", exc_info=e) + self._log(log_level=logging.ERROR, message=f"Message fetch error: {e!r}", exc_info=e) error_attempt = min(error_attempt + 1, _BACKOFF_EXP_CAP) delay = min(2.0 ** (error_attempt - 1) * random.uniform(0.5, 1.5), 30.0) # noqa: S311 await anyio.sleep(delay) @@ -185,7 +185,7 @@ async def _claim_and_consume( except Exception as e: # noqa: BLE001 # pragma: no cover self._log( log_level=logging.ERROR, - message=f"Timer {raw_id!r} consume error", + message=f"Timer {raw_id!r} consume error: {e!r}", exc_info=e, )