This commit is contained in:
2026-06-12 16:25:41 +08:00
parent ef4c1cca32
commit 2d8a0c3bca
23 changed files with 2904 additions and 525 deletions
+27 -4
View File
@@ -1,4 +1,6 @@
from datetime import datetime
from enum import Enum
import threading
from core.eventbus import EventPrintLog, event_bus
import config
@@ -10,17 +12,38 @@ class LogLevel(Enum):
WARNING = 2
ERROR = 3
CRITICAL = 4
def __le__(self, other):
return self.value <= other.value
class LogData:
def __init__(self, level:LogLevel, message:str):
def __init__(self, level: LogLevel, message: str):
self.level = level
self.message = message
def PrintLog(level:LogLevel, message:str):
_log_lock = threading.Lock()
def _log_file_path():
"""日志文件路径"""
return str(config.log_file_path())
def PrintLog(level: LogLevel, message: str):
data = LogData(level, message)
event_bus.publish(EventPrintLog, data)
line = f'{datetime.now().strftime("%Y-%m-%d %H:%M:%S")} [{level.name}] {message}'
if config.console_log:
print(f'{level.name} {message}')
print(line)
# 写入日志文件
try:
with _log_lock:
with open(_log_file_path(), 'a', encoding='utf-8') as f:
f.write(line + '\n')
except Exception:
pass # 写文件失败不阻塞主流程