Open
Description
Expected Behaviour
When flush_buffer_on_uncaught_error
is true
but no buffer_config
is set, no AttributeError
should be raised on an error.
Current Behaviour
[ERROR] AttributeError: 'Logger' object has no attribute '_buffer_cache'
Traceback (most recent call last):
File "/opt/python/aws_lambda_powertools/logging/logger.py", line 551, in decorate
self.flush_buffer()
File "/opt/python/aws_lambda_powertools/logging/logger.py", line 1205, in flush_buffer
buffer = self._buffer_cache.get(tracer_id)
File "/opt/python/aws_lambda_powertools/logging/logger.py", line 306, in __getattr__
return getattr(self._logger, name)
Code snippet
from aws_lambda_powertools.logging import Logger
logger = Logger()
@logger.inject_lambda_context(flush_buffer_on_uncaught_error=True)
def handler(event, context):
raise ValueError("foo")
Possible Solution
like in other places, wrap self._buffer_cache.get like:
if not self._buffer_config:
return
Steps to Reproduce
Deploy lambda and raise the exception.
Powertools for AWS Lambda (Python) version
latest
AWS Lambda function runtime
3.13
Packaging format used
PyPi
Debugging logs
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Triage