@@ -484,57 +484,41 @@ def emit(self, record):
484484class SuspendedLoggersContext :
485485 """A context manager that provides an isolated logging environment.
486486
487- Temporarily removes all existing loggers upon entry, providing a clean slate
488- for defining new loggers within the context. Upon exit, restores the original
489- logging configuration. This is useful when you need to temporarily configure
490- a completely isolated logging setup without interference from existing loggers.
487+ Temporarily removes all root log handlers upon entry, providing a clean slate
488+ for defining new log handlers within the context. Upon exit, restores the original
489+ configuration (root log handlers and log level).
490+ This is useful when you need to temporarily configure an isolated logging setup
491+ with well-defined log handlers.
491492
492493 The context manager:
493- - Removes all existing loggers on entry
494- - Allows defining new temporary loggers within the context
495- - Restores the original logging configuration on exit
496- - Preserves root logger settings for restoration
494+ - Removes all existing (root) log handlers on entry
495+ - Allows defining new temporary handlers within the context
496+ - Restores the original configuration (handlers and root log level) on exit
497497
498498 Example:
499499 >>> with SuspendedLoggersContext():
500- ... # No loggers are active here (configure your own)
500+ ... # No handlers are active here (configure your own and set desired log level )
501501 ... pass
502- >>> # All original loggers are restored here
502+ >>> # Original log handlers are restored here
503503 """
504504
505505 def __init__ (self ):
506- self .saved_loggers : Dict [str , lg .Logger ] = {}
507506 self .saved_root_handlers : list = []
508507 self .saved_root_level : Optional [int ] = None
509508
510509 def __enter__ (self ) -> 'SuspendedLoggersContext' :
511- # Save root logger state
512510 root_logger = lg .getLogger ()
513511 self .saved_root_handlers = root_logger .handlers .copy ()
514512 self .saved_root_level = root_logger .level
515-
516- # Save all existing loggers
517- self .saved_loggers = {
518- name : lg .getLogger (name )
519- for name in lg .root .manager .loggerDict
520- }
521-
522- # Clear all loggers
523- lg .root .manager .loggerDict .clear ()
524513 root_logger .handlers .clear ()
525-
526514 return self
527515
528516 def __exit__ (self , exc_type , exc_val , exc_tb ) -> None :
529- # Restore root logger state
530517 root_logger = lg .getLogger ()
531518 root_logger .handlers = self .saved_root_handlers
532519 if self .saved_root_level is not None :
533520 root_logger .setLevel (self .saved_root_level )
534521
535- # Restore all saved loggers
536- lg .root .manager .loggerDict .update (self .saved_loggers )
537-
538522
539523class LogLevelsChangedContext :
540524 """
0 commit comments