@@ -217,6 +217,28 @@ def test_copy_config_to_parent_loggers_only(stdout):
217217 assert child .parent .name == service
218218
219219
220+ def test_copy_config_to_parent_loggers_only_with_exclude (stdout ):
221+ # GIVEN Powertools Logger and Child Logger are initialized
222+ # and Powertools Logger config is copied over with exclude set
223+ service = service_name ()
224+ child = Logger (stream = stdout , service = service , child = True )
225+ parent = Logger (stream = stdout , service = service )
226+ utils .copy_config_to_registered_loggers (source_logger = parent , exclude = {"test" })
227+
228+ # WHEN either parent or child logger append keys
229+ child .append_keys (customer_id = "value" )
230+ parent .append_keys (user_id = "value" )
231+ parent .info ("Logger message" )
232+ child .info ("Child logger message" )
233+
234+ # THEN both custom keys should be propagated bi-directionally in parent and child loggers
235+ # as child logger won't be touched when config is being copied
236+ parent_log , child_log = capture_multiple_logging_statements_output (stdout )
237+ assert "customer_id" in parent_log , child_log
238+ assert "user_id" in parent_log , child_log
239+ assert child .parent .name == service
240+
241+
220242def test_copy_config_to_ext_loggers_no_duplicate_logs (stdout , logger , log_level ):
221243 # GIVEN an root logger, external logger and powertools logger initialized
222244
0 commit comments