From 738e89a80ab16fbde189ed768ed67e7c2ab5402f Mon Sep 17 00:00:00 2001 From: yaojin Date: Tue, 2 Jun 2026 00:44:28 +0800 Subject: [PATCH] fix: disable AgentBay SDK logging override to prevent resetting loguru config --- backend/app/core/logging_config.py | 14 +++++++++++++- backend/app/services/agentbay_client.py | 8 ++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/backend/app/core/logging_config.py b/backend/app/core/logging_config.py index b20ebf18a..2ca04aeeb 100644 --- a/backend/app/core/logging_config.py +++ b/backend/app/core/logging_config.py @@ -3,7 +3,6 @@ import sys import logging from contextvars import ContextVar -from typing import Optional from loguru import logger @@ -36,6 +35,17 @@ def set_trace_id(trace_id: str) -> None: trace_id_var.set(trace_id) +def _disable_agentbay_logger_override(): + """Disable AgentBay SDK's logging override to prevent it from resetting loguru.""" + if "agentbay._common.logger" in sys.modules: + try: + from agentbay._common.logger import AgentBayLogger + AgentBayLogger._initialized = True + AgentBayLogger.setup = classmethod(lambda cls, *args, **kwargs: None) + except Exception: + pass + + def configure_logging(): """Configure loguru with custom format including trace ID.""" # Remove default handler @@ -52,6 +62,8 @@ def configure_logging(): filter=lambda record: (record["extra"].setdefault("trace_id", get_trace_id() or str(uuid4())) is not None) ) + _disable_agentbay_logger_override() + return logger diff --git a/backend/app/services/agentbay_client.py b/backend/app/services/agentbay_client.py index 880088109..dc66dabb9 100644 --- a/backend/app/services/agentbay_client.py +++ b/backend/app/services/agentbay_client.py @@ -11,7 +11,11 @@ from typing import Optional from loguru import logger -from agentbay import AgentBay, BrowserOption, CreateSessionParams +from agentbay import AgentBay, CreateSessionParams +from app.core.logging_config import _disable_agentbay_logger_override, configure_logging + +_disable_agentbay_logger_override() +configure_logging() @dataclass @@ -72,7 +76,7 @@ async def close_session(self): return try: await asyncio.to_thread(self._session.delete) - logger.info(f"[AgentBay] Closed session") + logger.info("[AgentBay] Closed session") except Exception as e: logger.warning(f"[AgentBay] Failed to close session: {e}") finally: