Skip to content

Commit 3ffcc14

Browse files
authored
fix(logger): support additional args for handlers when injecting lambda context (#1276)
1 parent 692080e commit 3ffcc14

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

aws_lambda_powertools/logging/logger.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ def handler(event, context):
335335
)
336336

337337
@functools.wraps(lambda_handler)
338-
def decorate(event, context, **kwargs):
338+
def decorate(event, context, *args, **kwargs):
339339
lambda_context = build_lambda_context_model(context)
340340
cold_start = _is_cold_start()
341341

@@ -351,7 +351,7 @@ def decorate(event, context, **kwargs):
351351
logger.debug("Event received")
352352
self.info(getattr(event, "raw_event", event))
353353

354-
return lambda_handler(event, context)
354+
return lambda_handler(event, context, *args, **kwargs)
355355

356356
return decorate
357357

tests/functional/test_logger.py

+17
Original file line numberDiff line numberDiff line change
@@ -773,3 +773,20 @@ def handler(event, context):
773773
# THEN logger should log event received from Lambda
774774
logged_event, _ = capture_multiple_logging_statements_output(stdout)
775775
assert logged_event["message"] == lambda_event
776+
777+
778+
def test_inject_lambda_context_with_additional_args(lambda_context, stdout, service_name):
779+
# GIVEN Logger is initialized
780+
logger = Logger(service=service_name, stream=stdout)
781+
782+
# AND a handler that use additional parameters
783+
@logger.inject_lambda_context
784+
def handler(event, context, planet, str_end="."):
785+
logger.info(f"Hello {planet}{str_end}")
786+
787+
handler({}, lambda_context, "World", str_end="!")
788+
789+
# THEN the decorator should included them
790+
log = capture_logging_output(stdout)
791+
792+
assert log["message"] == "Hello World!"

0 commit comments

Comments
 (0)