import queue import re from loguru import logger # 全局日志队列 log_queue = queue.Queue() def ansi_cleaner(text): """去除 loguru 输出中的颜色代码,防止在 UI 显示乱码""" ansi_escape = re.compile(r"\x1b\[[0-9;]*m") return ansi_escape.sub("", text) def queue_sink(message): """Loguru 的回调函数""" clean_msg = ansi_cleaner(message) log_queue.put(clean_msg) def setup_logging(): """配置日志系统""" # 清除默认的控制台输出,防止干扰 logger.remove() # 添加队列输出 (给 UI 用) logger.add(queue_sink, format="{time:HH:mm:ss} | {level: <8} | {message}", level="INFO") # 添加文件输出 (给开发者排查用) # logger.add("logs/app_runtime.log", rotation="1 MB", encoding="utf-8", level="DEBUG")