INNER CODE UNIT · Python
StdoutRedirector
Delta-F/deltafstation · backend/app.py:54
class StdoutRedirector:
"""将写入 sys.stdout 的内容同步写入日志队列。"""
def __init__(self, original_stdout, log_queue):
self.original_stdout = original_stdout
self.log_queue = log_queue
def write(self, msg):
"""写入 stdout 的同时,把日志推入 SSE 队列。"""
self.log_queue.put(msg)
self.original_stdout.write(msg)
def flush(self):
"""刷新底层 stdout。"""
self.original_stdout.flush()
if not isinstance(sys.stdout, StdoutRedirector):
sys.stdout = StdoutRedirector(sys.stdout, global_log_queue)