diff --git a/app/core/logger.py b/app/core/logger.py
index efe3d3f..8110b17 100644
--- a/app/core/logger.py
+++ b/app/core/logger.py
@@ -14,6 +14,7 @@ _CONSOLE_FORMAT = (
"{time:YYYYMMDD HH:mm:ss} | "
"{process.name}:{process.id} | "
"{extra[request_id]} | "
+ "{extra[user_id]} | "
"{module}.{function}"
":{line} | "
"{level}: "
@@ -25,14 +26,22 @@ _FILE_FORMAT = (
"{time:YYYYMMDD HH:mm:ss} - "
"{process.name}:{process.id} | "
"{extra[request_id]} | "
+ "{extra[user_id]} | "
"{module}.{function}:{line} - {level} - {message}"
)
+def _patcher(record):
+ """动态从 RequestContext 注入 user_id 到日志"""
+ from app.core.context import RequestContext
+ user_id = RequestContext.user_id.get(None)
+ record["extra"]["user_id"] = user_id if user_id is not None else "unknown"
+
+
def _setup_logger() -> logger.__class__:
"""配置并返回 Loguru 日志实例"""
logger.remove()
- logger.configure(extra={"request_id": "system"})
+ logger.configure(extra={"request_id": "system", "user_id": "unknown"}, patcher=_patcher)
# 控制台输出
logger.add(