Open synic opened 3 years ago
For whatever reason the lambda runtime interface client doesn't follow standard python logging. It definitely needs top e fixed. There is a logger in aws_lambda_powertools for bootstrapping the loggers and emits json logs as aws CloudWatch logs use structured logging. I assume this should work in cases where you are not using a lambda.
I ended having to do this to get logging to work for imported modules:
module being imported
# mymodule.py
import inspect
import logging
from aws_lambda_powertools import Logger
if os.path.basename(sys.modules["__main__"].__file__) == "app.py":
# use aws lambda logger, formatter
logger = Logger(child=True)
else:
# use default logger
logger = logging.getLogger(__name__)
logger.addHandler(NullHandler())
Foo:
...
importing module
# lambda.py
from aws_lambda_powertools import Logger
from mymodule import Foo
def handler(event, context):
Foo()
I'm using logging messages in my python code, but none of those are ever visible. I'm currently configuring my logger like so:
However, I never see the logs. Where are they going?