提交新建内容

This commit is contained in:
2025-09-01 12:08:41 +08:00
commit 198ec2dc8f
14 changed files with 1911 additions and 0 deletions

73
logger_utils_new.py Normal file
View File

@@ -0,0 +1,73 @@
# logger_utils.py
import queue
import datetime
from colorama import Fore, Style, init
# 初始化 colorama仅 Windows 需要)
init(autoreset=True)
# 日志等级颜色映射(控制台 + UI
# LOG_COLORS → 控制台日志颜色(命令行)
# LOG_STYLES → UI 日志样式(图形界面)
LOG_COLORS = {
'default': Fore.CYAN,
'info': Fore.CYAN,
'warning': Fore.YELLOW,
'error': Fore.RED,
'trigger': Fore.GREEN,
}
# 【新增】UI 样式映射
LOG_STYLES = {
'default': {'color': 'cyan'},
'info': {'color': 'cyan'},
'warning': {'color': 'yellow'},
'error': {'color': 'red'},
'trigger': {'color': '#28a745'},
}
class Logger:
def __init__(self):
self.log_queue = queue.Queue()
self.append_log_func = None # 主程序的日志回调函数
def set_append_log(self, func):
"""设置主程序中的 append_log 函数"""
self.append_log_func = func
def log(self, message, level='default'):
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
full_message = f"[{timestamp}] {message}"
# 控制台带颜色输出
color = LOG_COLORS.get(level.lower(), Fore.WHITE)
print(f"{color}{full_message}{Style.RESET_ALL}")
# 触发UI更新如果已注册
if self.append_log_func:
log_type = level.lower()
style = LOG_STYLES.get(log_type, LOG_STYLES['default'])
# 调用主程序的 append_log 方法,只传递纯文本和日志类型
self.append_log_func(full_message, log_type)
def info(self, message): self.log(message, 'info')
def warning(self, message): self.log(message, 'warning')
def error(self, message): self.log(message, 'error')
def trigger(self, message): self.log(message, 'trigger')
def debug(self, message): self.log(message, 'debug')
# 全局日志实例
global_logger = Logger()
# 便捷方法,方便其他模块直接使用
def setup_logger(append_log_func):
global_logger.set_append_log(append_log_func)
def log_info(msg): global_logger.info(msg)
def log_warning(msg): global_logger.warning(msg)
def log_error(msg): global_logger.error(msg)
def log_trigger(msg): global_logger.trigger(msg)
def log_debug(msg): global_logger.debug(msg)