From 820dd85f921eba25763e8093f09c35de248d3419 Mon Sep 17 00:00:00 2001 From: Rishabh Shah Date: Mon, 10 Mar 2025 20:59:01 -0400 Subject: [PATCH] Fixed Double Logging --- backend/api_gateway/api_gateway.py | 45 ++++++++---------------------- backend/core/utils.py | 3 ++ 2 files changed, 15 insertions(+), 33 deletions(-) diff --git a/backend/api_gateway/api_gateway.py b/backend/api_gateway/api_gateway.py index a2bbfb6..a16f347 100644 --- a/backend/api_gateway/api_gateway.py +++ b/backend/api_gateway/api_gateway.py @@ -24,17 +24,11 @@ """ # Standard library imports -from flask import Blueprint, Flask, jsonify, request, make_response +from flask import Flask from flask_cors import CORS -from flask_restx import Api, Resource, fields, Namespace +from flask_restx import Api import sys import os -import jwt -import json -import uuid -import datetime -from datetime import datetime, timedelta -from functools import wraps # Add project root to Python path for relative imports sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) @@ -44,14 +38,15 @@ load_dotenv() # Import microservices and utilities -from backend.microservices.summarization_service import run_summarization, process_articles -from backend.microservices.news_fetcher import fetch_news -from backend.core.config import Config -from backend.core.utils import setup_logger, log_exception -from backend.microservices.auth_service import load_users -from backend.microservices.news_storage import store_article_in_supabase, log_user_search, add_bookmark, get_user_bookmarks, delete_bookmark -from backend.microservices.story_tracking_service import get_tracked_stories, create_tracked_story, get_story_details, delete_tracked_story -from backend.api_gateway.utils.auth import token_required +from backend.core.utils import setup_logger + +from backend.api_gateway.routes.news import news_ns +from backend.api_gateway.routes.auth import auth_ns +from backend.api_gateway.routes.health import health_ns +from backend.api_gateway.routes.summarize import summarize_ns +from backend.api_gateway.routes.user import user_ns +from backend.api_gateway.routes.bookmark import bookmark_ns +from backend.api_gateway.routes.story_tracking import story_tracking_ns # Initialize logger for the API Gateway logger = setup_logger(__name__) @@ -77,15 +72,7 @@ logger.info("Flask-RestX API initialized with documentation support") # Import namespaces from route modules -try: - from backend.api_gateway.routes.news import news_ns - from backend.api_gateway.routes.auth import auth_ns - from backend.api_gateway.routes.health import health_ns - from backend.api_gateway.routes.summarize import summarize_ns - from backend.api_gateway.routes.user import user_ns - from backend.api_gateway.routes.bookmark import bookmark_ns - from backend.api_gateway.routes.story_tracking import story_tracking_ns - +try: # Register imported namespaces with the API api.add_namespace(news_ns) api.add_namespace(auth_ns) @@ -99,14 +86,6 @@ logger.error(f"Error loading API namespaces: {str(e)}") raise -# token_required decorator is now in utils/auth.py - -# Define API models for request/response documentation - -# User profile model is now defined in routes/user.py - -# API models for other endpoints are defined in their respective modules - logger.info("API Gateway initialization completed successfully") if __name__ == '__main__': diff --git a/backend/core/utils.py b/backend/core/utils.py index a4406f1..fd93a24 100644 --- a/backend/core/utils.py +++ b/backend/core/utils.py @@ -35,6 +35,9 @@ def setup_logger(name: str, log_file: str = None) -> logging.Logger: """Sets up a logger with file and console handlers""" logger = logging.getLogger(name) logger.setLevel(getattr(logging, Config.LOG_LEVEL)) + + # Disable propagation to parent loggers (root logger) + logger.propagate = False # Create formatters and handlers formatter = logging.Formatter(Config.LOG_FORMAT)