Skip to content

Commit 0045930

Browse files
committed
redis manager, verbose error logging
Sometimes it's very useful to see exact error from redis in logs
1 parent efd1247 commit 0045930

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/socketio/async_redis_manager.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,19 @@ async def _publish(self, data):
7878
self._redis_connect()
7979
return await self.redis.publish(
8080
self.channel, pickle.dumps(data))
81-
except RedisError:
81+
except RedisError as exc:
8282
if retry:
83-
self._get_logger().error('Cannot publish to redis... '
84-
'retrying')
83+
self._get_logger().error(
84+
'Cannot publish to redis... '
85+
'retrying',
86+
extra={"redis_exception": str(exc)})
8587
retry = False
8688
else:
87-
self._get_logger().error('Cannot publish to redis... '
88-
'giving up')
89+
self._get_logger().error(
90+
'Cannot publish to redis... '
91+
'giving up',
92+
extra={"redis_exception": str(exc)})
93+
8994
break
9095

9196
async def _redis_listen_with_retries(self):
@@ -99,10 +104,11 @@ async def _redis_listen_with_retries(self):
99104
retry_sleep = 1
100105
async for message in self.pubsub.listen():
101106
yield message
102-
except RedisError:
107+
except RedisError as exc:
103108
self._get_logger().error('Cannot receive from redis... '
104109
'retrying in '
105-
'{} secs'.format(retry_sleep))
110+
'{} secs'.format(retry_sleep),
111+
extra={"redis_exception": str(exc)})
106112
connect = True
107113
await asyncio.sleep(retry_sleep)
108114
retry_sleep *= 2

src/socketio/redis_manager.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,18 @@ def _publish(self, data):
115115
if not retry:
116116
self._redis_connect()
117117
return self.redis.publish(self.channel, pickle.dumps(data))
118-
except redis.exceptions.RedisError:
118+
except redis.exceptions.RedisError as exc:
119119
if retry:
120-
logger.error('Cannot publish to redis... retrying')
120+
logger.error(
121+
'Cannot publish to redis... retrying',
122+
extra={"redis_exception": str(exc)}
123+
)
121124
retry = False
122125
else:
123-
logger.error('Cannot publish to redis... giving up')
126+
logger.error(
127+
'Cannot publish to redis... giving up',
128+
extra={"redis_exception": str(exc)}
129+
)
124130
break
125131

126132
def _redis_listen_with_retries(self):
@@ -133,9 +139,10 @@ def _redis_listen_with_retries(self):
133139
self.pubsub.subscribe(self.channel)
134140
retry_sleep = 1
135141
yield from self.pubsub.listen()
136-
except redis.exceptions.RedisError:
142+
except redis.exceptions.RedisError as exc:
137143
logger.error('Cannot receive from redis... '
138-
'retrying in {} secs'.format(retry_sleep))
144+
'retrying in {} secs'.format(retry_sleep),
145+
extra={"redis_exception": str(exc)})
139146
connect = True
140147
time.sleep(retry_sleep)
141148
retry_sleep *= 2

0 commit comments

Comments
 (0)