mirror of
https://github.com/hyb-oyqq/FRAISEMOE-Addons-Installer-NEXT.git
synced 2025-12-17 04:20:28 +00:00
- 在主窗口中添加离线模式管理器,支持自动切换到离线模式。 - 更新下载管理器以处理离线模式下的下载逻辑,确保用户体验流畅。 - 添加版本警告机制,提示用户在版本过低时的操作选项。 - 优化配置管理器,确保在离线模式下仍可使用相关功能。 - 更新UI管理器以反映当前工作模式,提升用户界面友好性。
73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
from .helpers import censor_url
|
||
import logging
|
||
import os
|
||
from data.config import CACHE
|
||
|
||
class URLCensorFormatter(logging.Formatter):
|
||
"""自定义的日志格式化器,用于隐藏日志消息中的URL"""
|
||
|
||
def format(self, record):
|
||
# 先使用原始的format方法格式化日志
|
||
formatted_message = super().format(record)
|
||
# 然后对格式化后的消息进行URL审查
|
||
return censor_url(formatted_message)
|
||
|
||
class Logger:
|
||
def __init__(self, filename, stream):
|
||
self.terminal = stream
|
||
self.log = open(filename, "w", encoding="utf-8")
|
||
|
||
def write(self, message):
|
||
censored_message = censor_url(message)
|
||
self.terminal.write(censored_message)
|
||
self.log.write(censored_message)
|
||
self.flush()
|
||
|
||
def flush(self):
|
||
self.terminal.flush()
|
||
self.log.flush()
|
||
|
||
def close(self):
|
||
self.log.close()
|
||
|
||
def setup_logger(name):
|
||
"""设置并返回一个命名的logger
|
||
|
||
Args:
|
||
name: logger的名称
|
||
|
||
Returns:
|
||
logging.Logger: 配置好的logger对象
|
||
"""
|
||
# 创建logger
|
||
logger = logging.getLogger(name)
|
||
|
||
# 避免重复添加处理器
|
||
if logger.hasHandlers():
|
||
return logger
|
||
|
||
logger.setLevel(logging.DEBUG)
|
||
|
||
# 确保日志目录存在
|
||
log_dir = os.path.join(CACHE, "logs")
|
||
os.makedirs(log_dir, exist_ok=True)
|
||
log_file = os.path.join(log_dir, f"{name}.log")
|
||
|
||
# 创建文件处理器
|
||
file_handler = logging.FileHandler(log_file, encoding="utf-8")
|
||
file_handler.setLevel(logging.DEBUG)
|
||
|
||
# 创建控制台处理器
|
||
console_handler = logging.StreamHandler()
|
||
console_handler.setLevel(logging.INFO)
|
||
|
||
# 创建格式器并添加到处理器
|
||
formatter = URLCensorFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||
file_handler.setFormatter(formatter)
|
||
console_handler.setFormatter(formatter)
|
||
|
||
# 添加处理器到logger
|
||
logger.addHandler(file_handler)
|
||
logger.addHandler(console_handler)
|
||
|
||
return logger |