diff --git a/aws_lambda_powertools/helper/models.py b/aws_lambda_powertools/helper/models.py index 16a5df3669e..bc6ea23eaa6 100644 --- a/aws_lambda_powertools/helper/models.py +++ b/aws_lambda_powertools/helper/models.py @@ -65,7 +65,7 @@ def build_lambda_context_model(context: object) -> LambdaContextModel: context = { "function_name": context.function_name, - "function_memory_size": str(context.memory_limit_in_mb), + "function_memory_size": context.memory_limit_in_mb, "function_arn": context.invoked_function_arn, "function_request_id": context.aws_request_id, } diff --git a/aws_lambda_powertools/logging/logger.py b/aws_lambda_powertools/logging/logger.py index bbcf6589060..ff3d3bb8f88 100644 --- a/aws_lambda_powertools/logging/logger.py +++ b/aws_lambda_powertools/logging/logger.py @@ -62,6 +62,7 @@ def __init__(self, **kwargs): datefmt = kwargs.pop("datefmt", None) super(JsonFormatter, self).__init__(datefmt=datefmt) + self.reserved_keys = ["timestamp", "level", "location"] self.format_dict = { "timestamp": "%(asctime)s", "level": "%(levelname)s", @@ -76,10 +77,12 @@ def format(self, record): # noqa: A003 log_dict = {} for key, value in self.format_dict.items(): - if value: + if value and key in self.reserved_keys: # converts default logging expr to its record value # e.g. '%(asctime)s' to '2020-04-24 09:35:40,698' log_dict[key] = value % record_dict + else: + log_dict[key] = value if isinstance(record_dict["msg"], dict): log_dict["message"] = record_dict["msg"] @@ -149,20 +152,19 @@ def handler(evt, ctx): raise DeprecationWarning("Use Logger instead - This method will be removed when GA") -def _is_cold_start() -> str: - """Verifies whether is cold start and return a string used for struct logging +def _is_cold_start() -> bool: + """Verifies whether is cold start Returns ------- - str - lower case bool as a string - aws_lambda_logging doesn't support bool; cast cold start value to string + bool + cold start bool value """ - cold_start = "false" + cold_start = False global is_cold_start if is_cold_start: - cold_start = str(is_cold_start).lower() + cold_start = is_cold_start is_cold_start = False return cold_start diff --git a/tests/functional/test_logger.py b/tests/functional/test_logger.py index c1a882f3320..0fce60c5291 100644 --- a/tests/functional/test_logger.py +++ b/tests/functional/test_logger.py @@ -228,12 +228,12 @@ def handler(event, context): first_log, second_log, third_log, fourth_log = logs # First execution - assert "true" == first_log["cold_start"] - assert "true" == second_log["cold_start"] + assert first_log["cold_start"] is True + assert second_log["cold_start"] is True # Second execution - assert "false" == third_log["cold_start"] - assert "false" == fourth_log["cold_start"] + assert third_log["cold_start"] is False + assert fourth_log["cold_start"] is False def test_log_metric(capsys):