@@ -54,7 +54,10 @@ def emit(self, record):
5454 method_to_use = self .handle_warning
5555 else : # info or any other unaccounted for log message level
5656 method_to_use = self .handle_info
57+
58+ slicer .app .processEvents ()
5759 method_to_use (self .format (record ))
60+ slicer .app .processEvents ()
5861
5962 def handle_error (self , msg ):
6063 slicer .util .errorDisplay (f"{ self .name_to_print } : { msg } " )
@@ -65,9 +68,26 @@ def handle_warning(self, msg):
6568 def handle_info (self , msg ):
6669 slicer .util .showStatusMessage (f"{ self .name_to_print } : { msg } " )
6770
68- def add_slicer_log_handler (openlifu_object : Any ):
71+ def add_slicer_log_handler (logger_name : str , name_to_print : str ):
72+ """Adds a SlicerLogHandler to the logger of a given name,
73+ and only doing so if that logger doesn't already have a SlicerLogHandler.
74+
75+ Args:
76+ logger_name: The name of the logger that should receive Slicer log handling
77+ name_to_print: The display name of the logger to put on Slicer messages and
78+ dialogs to indicate which logger the messages are coming from.
79+ """
80+ logger : logging .Logger = logging .getLogger (logger_name )
81+ if not any (isinstance (h , SlicerLogHandler ) for h in logger .handlers ):
82+ handler = SlicerLogHandler (name_to_print )
83+ logger .addHandler (handler )
84+
85+ def add_slicer_log_handler_for_openlifu_object (openlifu_object : Any ):
6986 """Adds an appropriately named SlicerLogHandler to the logger of an openlifu object,
70- and only doing so if that logger doesn't already have a SlicerLogHandler"""
87+ and only doing so if that logger doesn't already have a SlicerLogHandler.
88+ This is designed to work with those openlifu classes that have a `logger` attribute,
89+ a common pattern in the openlifu python codebase.
90+ """
7191 if not hasattr (openlifu_object , "logger" ):
7292 raise ValueError ("This object does not have a logger attribute." )
7393 if not hasattr (openlifu_object , "__class__" ):
0 commit comments