@@ -663,6 +663,44 @@ def handler(event, context):
663
663
assert "my_key" not in second_log
664
664
665
665
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
+
666
704
def test_inject_lambda_context_allows_handler_with_kwargs (lambda_context , stdout , service_name ):
667
705
# GIVEN
668
706
logger = Logger (service = service_name , stream = stdout )
0 commit comments