17 lines
513 B
Python
17 lines
513 B
Python
import logging
|
|
import sys
|
|
|
|
class PrintLogger:
|
|
def __init__(self, level=logging.INFO):
|
|
self.logger = logging.getLogger("stdout_redirect")
|
|
self.level = level
|
|
self.terminal = sys.__stdout__ # Save original stdout
|
|
|
|
def write(self, message):
|
|
message = message.strip()
|
|
if message: # avoid empty lines
|
|
self.logger.log(self.level, message)
|
|
self.terminal.write(message + '\n') # Echo to terminal
|
|
def flush(self):
|
|
self.terminal.flush()
|