Files
growth_report/utils/log_handler.py
2025-12-12 12:37:41 +08:00

27 lines
813 B
Python

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")