From c5fcbc637465cd399a71c46cfaa1df39783a8c8e Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Thu, 1 Jan 2026 23:39:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(logging):=20=E7=A7=BB=E9=99=A4lightrag?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=87=8D=E5=A4=8D=E6=97=A5=E5=BF=97=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=B9=B6=E5=A2=9E=E5=BC=BA=E6=97=A5=E5=BF=97=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E5=AE=89=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 禁止lightrag重复配置日志,避免覆盖主程序日志配置 在logging_config中添加enqueue参数确保日志线程安全 --- src/knowledge/implementations/lightrag.py | 11 +++++++---- src/utils/logging_config.py | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/knowledge/implementations/lightrag.py b/src/knowledge/implementations/lightrag.py index d62d1f44..496dfbdc 100644 --- a/src/knowledge/implementations/lightrag.py +++ b/src/knowledge/implementations/lightrag.py @@ -35,10 +35,13 @@ class LightRagKB(KnowledgeBase): # 设置 LightRAG 日志 log_dir = os.path.join(work_dir, "logs", "lightrag") os.makedirs(log_dir, exist_ok=True) - setup_logger( - "lightrag", - log_file_path=os.path.join(log_dir, f"lightrag_{shanghai_now().strftime('%Y-%m-%d')}.log"), - ) + # 禁止调用 lightrag.utils.setup_logger,因为它会重置全局 logger 配置(调用 logger.remove()) + # 导致主程序的控制台输出丢失。 + # 全局 logger 已在 src/utils/logging_config.py 中配置好。 + # setup_logger( + # "lightrag", + # log_file_path=os.path.join(log_dir, f"lightrag_{shanghai_now().strftime('%Y-%m-%d')}.log"), + # ) logger.info("LightRagKB initialized") diff --git a/src/utils/logging_config.py b/src/utils/logging_config.py index d525cc61..8c3728b6 100644 --- a/src/utils/logging_config.py +++ b/src/utils/logging_config.py @@ -1,4 +1,5 @@ import os +import sys from loguru import logger as loguru_logger @@ -25,12 +26,13 @@ def setup_logger(name, level="DEBUG", console=True): rotation="10 MB", # 文件大小达到 10MB 时轮转 retention="30 days", # 保留30天的日志 compression="zip", # 压缩旧日志文件 + enqueue=True, # 异步写入,确保线程安全 ) # 添加控制台日志(有颜色) if console: loguru_logger.add( - lambda msg: print(msg, end=""), + sys.stderr, level=level, format=( "{time:MM-DD HH:mm:ss} " @@ -39,6 +41,7 @@ def setup_logger(name, level="DEBUG", console=True): "{message}" ), colorize=True, + enqueue=True, # 异步写入,确保线程安全 ) return loguru_logger