@@ -216,6 +216,44 @@ def _dampen_noisy_loggers(
216216 logging .getLogger (name ).setLevel (quiet_level )
217217
218218
219+ def _configure_common_logging_settings (
220+ * ,
221+ log_format_local_dev_enabled : bool ,
222+ tracing_settings : TracingSettings | None ,
223+ log_base_level : LogLevelInt ,
224+ noisy_loggers : tuple [str , ...] | None ,
225+ ) -> logging .Formatter :
226+ """
227+ Common configuration logic shared by both sync and async logging setups.
228+
229+ Returns the configured formatter to be used with the appropriate handler.
230+ """
231+ _setup_base_logging_level (log_base_level )
232+ if noisy_loggers is not None :
233+ _dampen_noisy_loggers (noisy_loggers )
234+ if tracing_settings is not None :
235+ setup_log_tracing (tracing_settings = tracing_settings )
236+
237+ return _setup_logging_formatter (
238+ tracing_settings = tracing_settings ,
239+ log_format_local_dev_enabled = log_format_local_dev_enabled ,
240+ )
241+
242+
243+ def _apply_logging_configuration (
244+ handler : logging .Handler ,
245+ logger_filter_mapping : dict [LoggerName , list [MessageSubstring ]],
246+ ) -> None :
247+ """
248+ Apply the logging configuration with the given handler.
249+ """
250+ _clean_all_handlers ()
251+ _set_root_handler (handler )
252+
253+ if logger_filter_mapping :
254+ _apply_logger_filters (logger_filter_mapping )
255+
256+
219257def setup_loggers (
220258 * ,
221259 log_format_local_dev_enabled : bool ,
@@ -260,26 +298,19 @@ def setup_loggers(
260298 log_base_level: Base logging level to set
261299 noisy_loggers: Loggers to set to a quieter level
262300 """
263- _setup_base_logging_level (log_base_level )
264- if noisy_loggers is not None :
265- _dampen_noisy_loggers (noisy_loggers )
266- if tracing_settings is not None :
267- setup_log_tracing (tracing_settings = tracing_settings )
268- formatter = _setup_logging_formatter (
269- tracing_settings = tracing_settings ,
301+ formatter = _configure_common_logging_settings (
270302 log_format_local_dev_enabled = log_format_local_dev_enabled ,
303+ tracing_settings = tracing_settings ,
304+ log_base_level = log_base_level ,
305+ noisy_loggers = noisy_loggers ,
271306 )
272307
273308 # Create a properly formatted handler for the root logger
274309 stream_handler = logging .StreamHandler ()
275310 stream_handler .setFormatter (formatter )
276311
277312 _store_logger_state (_get_all_loggers ())
278- _clean_all_handlers ()
279- _set_root_handler (stream_handler )
280-
281- if logger_filter_mapping :
282- _apply_logger_filters (logger_filter_mapping )
313+ _apply_logging_configuration (stream_handler , logger_filter_mapping )
283314
284315
285316@contextmanager
@@ -381,26 +412,18 @@ def async_loggers(
381412 log_base_level: Base logging level to set
382413 noisy_loggers: Loggers to set to a quieter level
383414 """
384- _setup_base_logging_level (log_base_level )
385- if noisy_loggers is not None :
386- _dampen_noisy_loggers (noisy_loggers )
387-
388- if tracing_settings is not None :
389- setup_log_tracing (tracing_settings = tracing_settings )
390- formatter = _setup_logging_formatter (
391- tracing_settings = tracing_settings ,
415+ formatter = _configure_common_logging_settings (
392416 log_format_local_dev_enabled = log_format_local_dev_enabled ,
417+ tracing_settings = tracing_settings ,
418+ log_base_level = log_base_level ,
419+ noisy_loggers = noisy_loggers ,
393420 )
394421
395422 with (
396423 _queued_logging_handler (formatter ) as queue_handler ,
397424 _stored_logger_states (_get_all_loggers ()),
398425 ):
399- _clean_all_handlers ()
400- _set_root_handler (queue_handler )
401-
402- if logger_filter_mapping :
403- _apply_logger_filters (logger_filter_mapping )
426+ _apply_logging_configuration (queue_handler , logger_filter_mapping )
404427
405428 with log_context (_logger , logging .INFO , "Asynchronous logging" ):
406429 yield
0 commit comments