From 9147d35c8c5dba8bdeeb9dfe2f02afa0a6611fca Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Thu, 16 Oct 2025 12:45:01 +0800 Subject: [PATCH] Fix safely of access ctx in exception handlers (#855) --- backend/common/log.py | 9 ++------- backend/utils/trace_id.py | 4 +++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/backend/common/log.py b/backend/common/log.py index 6fcfadbb..fe5be304 100644 --- a/backend/common/log.py +++ b/backend/common/log.py @@ -6,7 +6,6 @@ import sys from loguru import logger -from backend.common.context import ctx from backend.core.conf import settings from backend.core.path_conf import LOG_DIR from backend.utils.timezone import timezone @@ -78,12 +77,8 @@ def setup_logging() -> None: # request_id 过滤器 def request_id_filter(record: logging.LogRecord) -> logging.LogRecord: - if ctx.exists(): - rid = get_request_trace_id() - record['request_id'] = rid[: settings.TRACE_ID_LOG_LENGTH] - else: - record['request_id'] = settings.TRACE_ID_LOG_DEFAULT_VALUE - + rid = get_request_trace_id() + record['request_id'] = rid[: settings.TRACE_ID_LOG_LENGTH] return record # 配置 loguru 处理器 diff --git a/backend/utils/trace_id.py b/backend/utils/trace_id.py index 6629c99d..3d753dd7 100644 --- a/backend/utils/trace_id.py +++ b/backend/utils/trace_id.py @@ -4,4 +4,6 @@ from backend.core.conf import settings def get_request_trace_id() -> str: """从请求头中获取追踪 ID""" - return ctx.get(settings.TRACE_ID_REQUEST_HEADER_KEY, settings.TRACE_ID_LOG_DEFAULT_VALUE) + if ctx.exists(): + return ctx.get(settings.TRACE_ID_REQUEST_HEADER_KEY, settings.TRACE_ID_LOG_DEFAULT_VALUE) + return settings.TRACE_ID_LOG_DEFAULT_VALUE