Fix safely of access ctx in exception handlers (#855)

This commit is contained in:
Wu Clan
2025-10-16 12:45:01 +08:00
committed by GitHub
parent 6a065797f5
commit 9147d35c8c
2 changed files with 5 additions and 8 deletions

View File

@@ -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 处理器

View File

@@ -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