9
9
def copy_config_to_registered_loggers (
10
10
source_logger : Logger ,
11
11
log_level : Optional [Union [int , str ]] = None ,
12
+ ignore_log_level = False ,
12
13
exclude : Optional [Set [str ]] = None ,
13
14
include : Optional [Set [str ]] = None ,
14
15
) -> None :
15
16
"""Copies source Logger level and handler to all registered loggers for consistent formatting.
16
17
17
18
Parameters
18
19
----------
20
+ ignore_log_level
19
21
source_logger : Logger
20
22
Powertools for AWS Lambda (Python) Logger to copy configuration from
21
23
log_level : Union[int, str], optional
22
24
Logging level to set to registered loggers, by default uses source_logger logging level
25
+ ignore_log_level: bool
26
+ Whether to not touch log levels for discovered loggers. log_level param is disregarded when this is set.
23
27
include : Optional[Set[str]], optional
24
28
List of logger names to include, by default all registered loggers are included
25
29
exclude : Optional[Set[str]], optional
@@ -54,7 +58,7 @@ def copy_config_to_registered_loggers(
54
58
55
59
registered_loggers = _find_registered_loggers (source_logger , loggers , filter_func )
56
60
for logger in registered_loggers :
57
- _configure_logger (source_logger , logger , level )
61
+ _configure_logger (source_logger = source_logger , logger = logger , level = level , ignore_log_level = ignore_log_level )
58
62
59
63
60
64
def _include_registered_loggers_filter (loggers : Set [str ]):
@@ -78,13 +82,21 @@ def _find_registered_loggers(
78
82
return root_loggers
79
83
80
84
81
- def _configure_logger (source_logger : Logger , logger : logging .Logger , level : Union [int , str ]) -> None :
85
+ def _configure_logger (
86
+ source_logger : Logger ,
87
+ logger : logging .Logger ,
88
+ level : Union [int , str ],
89
+ ignore_log_level : bool = False ,
90
+ ) -> None :
91
+ # customers may not want to copy the same log level from Logger to discovered loggers
92
+ if not ignore_log_level :
93
+ logger .setLevel (level )
94
+ source_logger .debug (f"Logger { logger } reconfigured to use logging level { level } " )
95
+
82
96
logger .handlers = []
83
- logger .setLevel (level )
84
97
logger .propagate = False # ensure we don't propagate logs to existing loggers, #1073
85
98
source_logger .append_keys (name = "%(name)s" ) # include logger name, see #1267
86
99
87
- source_logger .debug (f"Logger { logger } reconfigured to use logging level { level } " )
88
100
for source_handler in source_logger .handlers :
89
101
logger .addHandler (source_handler )
90
102
source_logger .debug (f"Logger { logger } reconfigured to use { source_handler } " )
0 commit comments