From b7de694f483341db868e59073ac88988fc776ea0 Mon Sep 17 00:00:00 2001 From: yangdx Date: Wed, 19 Nov 2025 22:50:06 +0800 Subject: [PATCH] Add comprehensive error logging across API routes - Add error logs to Ollama API endpoints - Replace logging with unified logger - Log streaming query errors - Add data query error logging - Include stack traces for debugging --- lightrag/api/routers/ollama_api.py | 2 ++ lightrag/api/routers/query_routes.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lightrag/api/routers/ollama_api.py b/lightrag/api/routers/ollama_api.py index 259e7781..15c695ce 100644 --- a/lightrag/api/routers/ollama_api.py +++ b/lightrag/api/routers/ollama_api.py @@ -456,6 +456,7 @@ class OllamaAPI: "eval_duration": eval_time, } except Exception as e: + logger.error(f"Ollama generate error: {str(e)}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) @self.router.post( @@ -718,4 +719,5 @@ class OllamaAPI: "eval_duration": eval_time, } except Exception as e: + logger.error(f"Ollama chat error: {str(e)}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) diff --git a/lightrag/api/routers/query_routes.py b/lightrag/api/routers/query_routes.py index 5dc9f084..99a799c1 100644 --- a/lightrag/api/routers/query_routes.py +++ b/lightrag/api/routers/query_routes.py @@ -3,12 +3,11 @@ This module contains all query-related routes for the LightRAG API. """ import json -import logging from typing import Any, Dict, List, Literal, Optional - from fastapi import APIRouter, Depends, HTTPException from lightrag.base import QueryParam from lightrag.api.utils_api import get_combined_auth_dependency +from lightrag.utils import logger from pydantic import BaseModel, Field, field_validator router = APIRouter(tags=["query"]) @@ -451,6 +450,7 @@ def create_query_routes(rag, api_key: Optional[str] = None, top_k: int = 60): else: return QueryResponse(response=response_content, references=None) except Exception as e: + logger.error(f"Error processing query: {str(e)}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) @router.post( @@ -710,7 +710,7 @@ def create_query_routes(rag, api_key: Optional[str] = None, top_k: int = 60): if chunk: # Only send non-empty content yield f"{json.dumps({'response': chunk})}\n" except Exception as e: - logging.error(f"Streaming error: {str(e)}") + logger.error(f"Streaming error: {str(e)}") yield f"{json.dumps({'error': str(e)})}\n" else: # Non-streaming mode: send complete response in one message @@ -736,6 +736,7 @@ def create_query_routes(rag, api_key: Optional[str] = None, top_k: int = 60): }, ) except Exception as e: + logger.error(f"Error processing streaming query: {str(e)}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) @router.post( @@ -1152,6 +1153,7 @@ def create_query_routes(rag, api_key: Optional[str] = None, top_k: int = 60): data={}, ) except Exception as e: + logger.error(f"Error processing data query: {str(e)}", exc_info=True) raise HTTPException(status_code=500, detail=str(e)) return router