24 lines
790 B
Python
24 lines
790 B
Python
|
|
# backend/core/logger.py
|
|||
|
|
import logging
|
|||
|
|
import sys
|
|||
|
|
|
|||
|
|
def setup_logging(level=logging.INFO):
|
|||
|
|
"""
|
|||
|
|
全局日志配置
|
|||
|
|
关键点:强制将日志输出到 sys.stderr,防止污染 sys.stdout 导致 MCP 协议崩溃。
|
|||
|
|
"""
|
|||
|
|
# 定义日志格式:时间 - 模块名 - 级别 - 内容
|
|||
|
|
log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|||
|
|
|
|||
|
|
# 配置根记录器
|
|||
|
|
logging.basicConfig(
|
|||
|
|
level=level,
|
|||
|
|
format=log_format,
|
|||
|
|
handlers=[
|
|||
|
|
# 【绝对关键】使用 StreamHandler(sys.stderr)
|
|||
|
|
# 这样日志会走标准错误通道,不会干扰 MCP 的标准输出通信
|
|||
|
|
logging.StreamHandler(sys.stderr)
|
|||
|
|
],
|
|||
|
|
# 强制重新配置,防止被第三方库覆盖
|
|||
|
|
force=True
|
|||
|
|
)
|