From 6ecaf4d61eadba1d79fffae5e72fa1e49c15ccc0 Mon Sep 17 00:00:00 2001 From: Ajit Padhi Date: Wed, 3 Dec 2025 21:58:20 +0530 Subject: [PATCH 1/4] logging issue fix --- src/api/app.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/api/app.py b/src/api/app.py index c91e5fbc9..eac051e6e 100644 --- a/src/api/app.py +++ b/src/api/app.py @@ -39,13 +39,16 @@ # Basic config: logging.basicConfig(level=logging.INFO) logging.basicConfig( level=getattr(logging, AZURE_BASIC_LOGGING_LEVEL, logging.INFO), - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + force=True # This ensures the configuration is applied ) # Package config: Azure loggers set to WARNING to suppress INFO for logger_name in AZURE_LOGGING_PACKAGES: logging.getLogger(logger_name).setLevel(getattr(logging, AZURE_PACKAGE_LOGGING_LEVEL, logging.WARNING)) +logging.info(f"Logging configured - Basic: {AZURE_BASIC_LOGGING_LEVEL}, Azure packages: {AZURE_PACKAGE_LOGGING_LEVEL}, Packages: {AZURE_LOGGING_PACKAGES}") + @asynccontextmanager async def lifespan(fastapi_app: FastAPI): From 57323947dc371ef6a11159c7cbb366f5cd6fd060 Mon Sep 17 00:00:00 2001 From: Ajit Padhi Date: Wed, 17 Dec 2025 21:06:28 +0530 Subject: [PATCH 2/4] logging issue fix --- src/api/app.py | 31 +------------------------------ src/api/logging_config.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 30 deletions(-) create mode 100644 src/api/logging_config.py diff --git a/src/api/app.py b/src/api/app.py index eac051e6e..1a886dbda 100644 --- a/src/api/app.py +++ b/src/api/app.py @@ -7,13 +7,11 @@ """ -import logging -import os +import logging_config # Ensure logging is configured before other imports from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from dotenv import load_dotenv import uvicorn from agents.conversation_agent_factory import ConversationAgentFactory @@ -23,33 +21,6 @@ from api.api_routes import router as backend_router from api.history_routes import router as history_router -# Load environment variables -load_dotenv() - -# Configure logging -# Basic application logging (default: INFO level) -AZURE_BASIC_LOGGING_LEVEL = os.getenv("AZURE_BASIC_LOGGING_LEVEL", "INFO").upper() -# Azure package logging (default: WARNING level to suppress INFO) -AZURE_PACKAGE_LOGGING_LEVEL = os.getenv("AZURE_PACKAGE_LOGGING_LEVEL", "WARNING").upper() -# Azure logging packages (default: empty list) -AZURE_LOGGING_PACKAGES = [ - pkg.strip() for pkg in os.getenv("AZURE_LOGGING_PACKAGES", "").split(",") if pkg.strip() -] - -# Basic config: logging.basicConfig(level=logging.INFO) -logging.basicConfig( - level=getattr(logging, AZURE_BASIC_LOGGING_LEVEL, logging.INFO), - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - force=True # This ensures the configuration is applied -) - -# Package config: Azure loggers set to WARNING to suppress INFO -for logger_name in AZURE_LOGGING_PACKAGES: - logging.getLogger(logger_name).setLevel(getattr(logging, AZURE_PACKAGE_LOGGING_LEVEL, logging.WARNING)) - -logging.info(f"Logging configured - Basic: {AZURE_BASIC_LOGGING_LEVEL}, Azure packages: {AZURE_PACKAGE_LOGGING_LEVEL}, Packages: {AZURE_LOGGING_PACKAGES}") - - @asynccontextmanager async def lifespan(fastapi_app: FastAPI): """ diff --git a/src/api/logging_config.py b/src/api/logging_config.py new file mode 100644 index 000000000..d961192c9 --- /dev/null +++ b/src/api/logging_config.py @@ -0,0 +1,32 @@ +""" +Logging configuration module. +This module must be imported before any other modules to ensure proper logging setup. +""" + +import logging +import os +from dotenv import load_dotenv + +# Load environment variables first +load_dotenv() + +# Configure logging before any other imports +AZURE_BASIC_LOGGING_LEVEL = os.getenv("AZURE_BASIC_LOGGING_LEVEL", "INFO").upper() +AZURE_PACKAGE_LOGGING_LEVEL = os.getenv("AZURE_PACKAGE_LOGGING_LEVEL", "WARNING").upper() +AZURE_LOGGING_PACKAGES = [ + pkg.strip() for pkg in os.getenv("AZURE_LOGGING_PACKAGES", "").split(",") if pkg.strip() +] + +# Configure logging (this will be the first logging configuration) +logging.basicConfig( + level=getattr(logging, AZURE_BASIC_LOGGING_LEVEL, logging.INFO), + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) + +# Configure Azure package loggers +for logger_name in AZURE_LOGGING_PACKAGES: + logging.getLogger(logger_name).setLevel(getattr(logging, AZURE_PACKAGE_LOGGING_LEVEL, logging.WARNING)) + +# Log that configuration is complete +logger = logging.getLogger(__name__) +logger.info(f"Logging configured - Basic: {AZURE_BASIC_LOGGING_LEVEL}, Azure packages: {AZURE_PACKAGE_LOGGING_LEVEL}, Packages: {AZURE_LOGGING_PACKAGES}") \ No newline at end of file From 199bcef54f2da1783c89b60bea778bacaaf71d56 Mon Sep 17 00:00:00 2001 From: Ajit Padhi Date: Wed, 17 Dec 2025 21:10:40 +0530 Subject: [PATCH 3/4] lint issue fix --- src/api/logging_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/logging_config.py b/src/api/logging_config.py index d961192c9..2ee405995 100644 --- a/src/api/logging_config.py +++ b/src/api/logging_config.py @@ -29,4 +29,4 @@ # Log that configuration is complete logger = logging.getLogger(__name__) -logger.info(f"Logging configured - Basic: {AZURE_BASIC_LOGGING_LEVEL}, Azure packages: {AZURE_PACKAGE_LOGGING_LEVEL}, Packages: {AZURE_LOGGING_PACKAGES}") \ No newline at end of file +logger.info(f"Logging configured - Basic: {AZURE_BASIC_LOGGING_LEVEL}, Azure packages: {AZURE_PACKAGE_LOGGING_LEVEL}, Packages: {AZURE_LOGGING_PACKAGES}") From a9f1f3c8550bc6b903702434b51e0d53e1968147 Mon Sep 17 00:00:00 2001 From: Ajit Padhi Date: Wed, 17 Dec 2025 21:14:29 +0530 Subject: [PATCH 4/4] lint issue fix --- src/api/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/api/app.py b/src/api/app.py index 1a886dbda..74a0a7b7f 100644 --- a/src/api/app.py +++ b/src/api/app.py @@ -7,7 +7,7 @@ """ -import logging_config # Ensure logging is configured before other imports +import logging_config # noqa: F401 - Ensure logging is configured before other imports from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware @@ -21,6 +21,7 @@ from api.api_routes import router as backend_router from api.history_routes import router as history_router + @asynccontextmanager async def lifespan(fastapi_app: FastAPI): """