更换print到logger

This commit is contained in:
2026-01-02 17:23:13 +08:00
parent 01b83803c1
commit 093a47ea50
6 changed files with 88 additions and 29 deletions

View File

@@ -24,6 +24,7 @@ from models import EventFactory
from .bot import Bot
from .command_manager import matcher
from .config_loader import global_config
from .logger import logger
class WS:
@@ -58,24 +59,23 @@ class WS:
while True:
try:
print(f" 正在尝试连接至 NapCat: {self.url}")
logger.info(f"正在尝试连接至 NapCat: {self.url}")
async with websockets.connect(
self.url, additional_headers=headers
) as websocket:
self.ws = websocket
print(" 连接成功!")
logger.success("连接成功!")
await self._listen_loop(websocket)
except (
websockets.exceptions.ConnectionClosed,
ConnectionRefusedError,
) as e:
print(f" 连接断开或服务器拒绝访问: {e}")
logger.warning(f"连接断开或服务器拒绝访问: {e}")
except Exception as e:
print(f" 运行异常: {e}")
traceback.print_exc()
logger.exception(f"运行异常: {e}")
print(f" {self.reconnect_interval}秒后尝试重连...")
logger.info(f"{self.reconnect_interval}秒后尝试重连...")
await asyncio.sleep(self.reconnect_interval)
async def _listen_loop(self, websocket):
@@ -108,8 +108,7 @@ class WS:
asyncio.create_task(self.on_event(data))
except Exception as e:
print(f" 解析消息异常: {e}")
traceback.print_exc()
logger.exception(f"解析消息异常: {e}")
async def on_event(self, raw_data: dict):
"""
@@ -130,21 +129,22 @@ class WS:
event.bot = self.bot # 注入 Bot 实例
# 打印日志
t = datetime.fromtimestamp(event.time).strftime("%H:%M:%S")
if event.post_type == "message":
sender_name = event.sender.nickname if event.sender else "Unknown"
print(f" [{t}] [消息] {event.message_type} | {event.user_id}({sender_name}): {event.raw_message}")
logger.info(f"[消息] {event.message_type} | {event.user_id}({sender_name}): {event.raw_message}")
elif event.post_type == "notice":
print(f" [{t}] [通知] {event.notice_type}")
logger.info(f"[通知] {event.notice_type}")
elif event.post_type == "request":
print(f" [{t}] [请求] {event.request_type}")
logger.info(f"[请求] {event.request_type}")
elif event.post_type == "meta_event":
logger.debug(f"[元事件] {event.meta_event_type}")
# 分发事件
await matcher.handle_event(self.bot, event)
except Exception as e:
print(f" 事件处理异常: {e}")
traceback.print_exc()
logger.exception(f"事件处理异常: {e}")
async def call_api(self, action: str, params: dict = None):
"""
@@ -162,11 +162,13 @@ class WS:
表示失败的字典。
"""
if not self.ws:
logger.error("调用 API 失败: WebSocket 未初始化")
return {"status": "failed", "msg": "websocket not initialized"}
from websockets.protocol import State
if getattr(self.ws, "state", None) is not State.OPEN:
logger.error("调用 API 失败: WebSocket 连接未打开")
return {"status": "failed", "msg": "websocket is not open"}
echo_id = str(uuid.uuid4())
@@ -182,5 +184,6 @@ class WS:
return await asyncio.wait_for(future, timeout=30.0)
except asyncio.TimeoutError:
self._pending_requests.pop(echo_id, None)
logger.warning(f"API 调用超时: action={action}, params={params}")
return {"status": "failed", "retcode": -1, "msg": "api timeout"}