@@ -217,6 +217,28 @@ def test_copy_config_to_parent_loggers_only(stdout):
217
217
assert child .parent .name == service
218
218
219
219
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
+
220
242
def test_copy_config_to_ext_loggers_no_duplicate_logs (stdout , logger , log_level ):
221
243
# GIVEN an root logger, external logger and powertools logger initialized
222
244
0 commit comments