Closed as not planned
Description
Chicken/egg problem with parent logger needing to be instantiated before child logger is able to utilize common methods like append_keys.
What were you trying to accomplish?
Expected Behavior
append_keys
provides structured information that the powertools logger unions into an output.
Current Behavior
A logger can be set up with child=True but end up with a different method interface.
Current workaround is to avoid append_keys and only use extra as part of .debug/.info/etc... as that will go nowhere when a parent logger isn't instanciated.
Possible Solution
Open to suggestion
Steps to Reproduce (for bugs)
Various tests:
Python 3.9.9+ (heads/3.9:2d4049d, Jan 1 2022, 00:54:45)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from aws_lambda_powertools.logging.logger import Logger
>>> child_logger = Logger(child=True)
>>> child_logger.append_keys(boom=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/spencersr/src/everyonesocial/es-billing-service/.venv/lib/python3.9/site-packages/aws_lambda_powertools/logging/logger.py", line 359, in append_keys
self.registered_formatter.append_keys(**additional_keys)
File "/home/spencersr/src/everyonesocial/es-billing-service/.venv/lib/python3.9/site-packages/aws_lambda_powertools/logging/logger.py", line 373, in registered_formatter
return self.registered_handler.formatter # type: ignore
File "/home/spencersr/src/everyonesocial/es-billing-service/.venv/lib/python3.9/site-packages/aws_lambda_powertools/logging/logger.py", line 368, in registered_handler
return handlers[0]
IndexError: list index out of range
>>>
Python 3.9.9+ (heads/3.9:2d4049d, Jan 1 2022, 00:54:45)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from aws_lambda_powertools.logging.logger import Logger
>>> logger = Logger()
>>> child_logger = Logger(child=True)
>>> child_logger.append_keys(boom=0)
>>>
Environment
- Powertools version used: 1.24.2
- Packaging format (Layers, PyPi): PyPi
- AWS Lambda function runtime: Any
- Debugging logs See tests above
Metadata
Metadata
Assignees
Type
Projects
Status
Closed