Skip to content

Commit

Permalink
add class to capture print messages to the logger (#956)
Browse files Browse the repository at this point in the history
  • Loading branch information
dylansdaniels authored Nov 27, 2024
1 parent d867c6d commit fbe1981
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions hnn_core/gui/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,12 @@ def __init__(self, output_widget, *args, **kwargs):

def emit(self, record):
formatted_record = self.format(record)
# Further format the message for GUI presentation
try:
formatted_record = formatted_record.replace(" - ", "\n")
formatted_record = "[TIME] " + formatted_record + "\n"
except:
pass
new_output = {
'name': 'stdout',
'output_type': 'stream',
Expand All @@ -159,6 +165,24 @@ def emit(self, record):
self.out.outputs = self.out.outputs + (new_output, )


class _GUI_PrintToLogger:
"""Class to redirect print messages to the logger in the GUI"""
# when print is used, call the write method instead
def write(self, message):
# avoid logging empty/new lines
if message.strip():
# send the message to the logger
logger.info(message.strip())

# The flush method is required for compatibility with print
def flush(self):
pass


# assign class to stdout to redirect print statements to the logger
sys.stdout = _GUI_PrintToLogger()


class HNNGUI:
"""HNN GUI class
Expand Down

0 comments on commit fbe1981

Please sign in to comment.