@@ -663,6 +663,44 @@ def handler(event, context):
663663 assert "my_key" not in second_log
664664
665665
666+ def test_clear_state_keeps_standard_keys (lambda_context , stdout , service_name ):
667+ # GIVEN
668+ logger = Logger (service = service_name , stream = stdout )
669+ standard_keys = ["level" , "location" , "message" , "timestamp" , "service" ]
670+
671+ # WHEN clear_state is set
672+ @logger .inject_lambda_context (clear_state = True )
673+ def handler (event , context ):
674+ logger .info ("Foo" )
675+
676+ # THEN all standard keys should be available as usual
677+ handler ({}, lambda_context )
678+ handler ({}, lambda_context )
679+
680+ first_log , second_log = capture_multiple_logging_statements_output (stdout )
681+ for key in standard_keys :
682+ assert key in first_log
683+ assert key in second_log
684+
685+
686+ def test_clear_state_keeps_exception_keys (lambda_context , stdout , service_name ):
687+ # GIVEN
688+ logger = Logger (service = service_name , stream = stdout )
689+
690+ # WHEN clear_state is set and an exception was logged
691+ @logger .inject_lambda_context (clear_state = True )
692+ def handler (event , context ):
693+ try :
694+ raise ValueError ("something went wrong" )
695+ except Exception :
696+ logger .exception ("Received an exception" )
697+
698+ # THEN we expect a "exception_name" to be "ValueError"
699+ handler ({}, lambda_context )
700+ log = capture_logging_output (stdout )
701+ assert "ValueError" == log ["exception_name" ]
702+
703+
666704def test_inject_lambda_context_allows_handler_with_kwargs (lambda_context , stdout , service_name ):
667705 # GIVEN
668706 logger = Logger (service = service_name , stream = stdout )
0 commit comments