From 5dffda6ab5553d00bef126f125e40a35ff33b1f6 Mon Sep 17 00:00:00 2001 From: donnel Date: Thu, 18 Dec 2025 16:03:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=86=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E6=94=B9=E4=B8=BA=E5=86=99=E5=85=A5=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E5=B9=B2=E6=89=B0stdio=20MCP?= =?UTF-8?q?=E9=80=9A=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 _setup_logging() 函数配置日志输出到文件 - 日志文件位置:~/.uart-mcp/uart-mcp.log - 移除默认的 stderr 处理器,防止干扰 JSON-RPC 协议 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- src/uart_mcp/server.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/uart_mcp/server.py b/src/uart_mcp/server.py index 58b0065..496f36c 100644 --- a/src/uart_mcp/server.py +++ b/src/uart_mcp/server.py @@ -12,6 +12,8 @@ from mcp.server.lowlevel import NotificationOptions, Server from mcp.server.models import InitializationOptions +# 配置日志 - 写入文件以避免干扰 stdio MCP 通信 +from .config import get_config_dir from .errors import SerialError from .serial_manager import get_serial_manager from .terminal_manager import get_terminal_manager @@ -49,12 +51,30 @@ send_command, ) -# 配置日志 -logging.basicConfig( - level=logging.INFO, - format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", -) -logger = logging.getLogger(__name__) + +def _setup_logging() -> logging.Logger: + """配置日志输出到文件""" + log_dir = get_config_dir() + log_dir.mkdir(parents=True, exist_ok=True) + log_file = log_dir / "uart-mcp.log" + + # 创建文件处理器 + file_handler = logging.FileHandler(log_file, encoding="utf-8") + file_handler.setLevel(logging.INFO) + file_handler.setFormatter( + logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") + ) + + # 配置根日志器 + root_logger = logging.getLogger() + root_logger.setLevel(logging.INFO) + # 移除默认的 stderr 处理器 + root_logger.handlers.clear() + root_logger.addHandler(file_handler) + + return logging.getLogger(__name__) + +logger = _setup_logging() # 创建 MCP Server server = Server("uart-mcp")