@@ -663,6 +663,42 @@ 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
+
679
+ log = capture_logging_output (stdout )
680
+ for key in standard_keys :
681
+ assert key in log
682
+
683
+
684
+ def test_clear_state_keeps_exception_keys (lambda_context , stdout , service_name ):
685
+ # GIVEN
686
+ logger = Logger (service = service_name , stream = stdout )
687
+
688
+ # WHEN clear_state is set and an exception was logged
689
+ @logger .inject_lambda_context (clear_state = True )
690
+ def handler (event , context ):
691
+ try :
692
+ raise ValueError ("something went wrong" )
693
+ except Exception :
694
+ logger .exception ("Received an exception" )
695
+
696
+ # THEN we expect a "exception_name" to be "ValueError"
697
+ handler ({}, lambda_context )
698
+ log = capture_logging_output (stdout )
699
+ assert "ValueError" == log ["exception_name" ]
700
+
701
+
666
702
def test_inject_lambda_context_allows_handler_with_kwargs (lambda_context , stdout , service_name ):
667
703
# GIVEN
668
704
logger = Logger (service = service_name , stream = stdout )
0 commit comments