new ui
This commit is contained in:
+27
-4
@@ -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 # 写文件失败不阻塞主流程
|
||||
|
||||
Reference in New Issue
Block a user