Fixed bug caused by trying to use global level logger variable from django_redis.cache that has been moved to django_redis.cache.RedisCache instance attribute since django-redis 4.12.0 release.
django-redis package allows to ignore cache exceptions by setting the "IGNORE_EXCEPTIONS": True key in the cache options in settings.py:
or by defining the following global variable in settings.py:
DJANGO_REDIS_IGNORE_EXCEPTIONS = True
When ignoring exceptions with IGNORE_EXCEPTIONS or DJANGO_REDIS_IGNORE_EXCEPTIONS, you may optionally log exceptions using the global variable DJANGO_REDIS_LOG_IGNORED_EXCEPTIONS in your settings file:
DJANGO_REDIS_LOG_IGNORED_EXCEPTIONS = True
django_prometheus RedisCache wrapper class respects these settings by inheriting them from django_redis.cache.RedisCache. However, in case when "ignore exceptions, but log them" strategy is used, django_prometheus RedisCache wrapper tries to access the global variable django_redis.cache.logger. Unfortunately, this variable has been moved from global variable to django_redis.cache.RedisCache instance attribute since django-redis 4.12.0 release (specifically by this commit https://github.com/jazzband/django-redis/commit/b7d64f0a80180ecfe8900407fbdf5e4196fa7a2a).
This commit fixes the bug simply by changing the reference to logger from django_redis.cache.logger global variable to the instance attribute logger inherited by django_prometheus RedisCache wrapper.
Fixed bug caused by trying to use global level logger variable from django_redis.cache that has been moved to django_redis.cache.RedisCache instance attribute since django-redis 4.12.0 release.
django-redis package allows to ignore cache exceptions by setting the
"IGNORE_EXCEPTIONS": True
key in the cache options in settings.py:or by defining the following global variable in settings.py:
When ignoring exceptions with
IGNORE_EXCEPTIONS
orDJANGO_REDIS_IGNORE_EXCEPTIONS
, you may optionally log exceptions using the global variableDJANGO_REDIS_LOG_IGNORED_EXCEPTIONS
in your settings file:django_prometheus RedisCache wrapper class respects these settings by inheriting them from
django_redis.cache.RedisCache
. However, in case when "ignore exceptions, but log them" strategy is used, django_prometheus RedisCache wrapper tries to access the global variabledjango_redis.cache.logger
. Unfortunately, this variable has been moved from global variable todjango_redis.cache.RedisCache
instance attribute since django-redis 4.12.0 release (specifically by this commit https://github.com/jazzband/django-redis/commit/b7d64f0a80180ecfe8900407fbdf5e4196fa7a2a).This commit fixes the bug simply by changing the reference to logger from
django_redis.cache.logger
global variable to the instance attribute logger inherited by django_prometheus RedisCache wrapper.