From 9311d0d95fbe109dc0b75a01a738e395de10cfcc Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 3 Oct 2025 11:13:16 -0400 Subject: [PATCH] Drop log middleware --- backend/logger/formatter.py | 33 ++++++++++++++++ backend/logger/log_middleware.py | 68 -------------------------------- backend/main.py | 7 ++-- 3 files changed, 36 insertions(+), 72 deletions(-) delete mode 100644 backend/logger/log_middleware.py diff --git a/backend/logger/formatter.py b/backend/logger/formatter.py index 7e8d81db6..b6b93afbf 100644 --- a/backend/logger/formatter.py +++ b/backend/logger/formatter.py @@ -16,6 +16,39 @@ LIGHTMAGENTA = Fore.LIGHTMAGENTA_EX RESET = Fore.RESET RESET_ALL = Style.RESET_ALL +LOGGING_CONFIG = { + "version": 1, + "disable_existing_loggers": False, + "formatters": { + "romm": { + "()": "logger.formatter.Formatter", + } + }, + "handlers": { + "default": { + "formatter": "romm", + "class": "logging.StreamHandler", + "stream": "ext://sys.stdout", + } + }, + "root": { + "handlers": ["default"], + "level": "INFO", + }, + "loggers": { + "uvicorn": { + "level": "INFO", + "handlers": ["default"], + "propagate": False, + }, + "uvicorn.error": { + "level": "INFO", + "handlers": ["default"], + "propagate": False, + }, + }, +} + def should_strip_ansi() -> bool: """Determine if ANSI escape codes should be stripped.""" diff --git a/backend/logger/log_middleware.py b/backend/logger/log_middleware.py deleted file mode 100644 index f59a45f8c..000000000 --- a/backend/logger/log_middleware.py +++ /dev/null @@ -1,68 +0,0 @@ -import logging -import time - -from starlette.middleware.base import BaseHTTPMiddleware -from starlette.requests import Request -from user_agents import parse as parse_user_agent - -log = logging.getLogger("uvicorn.access") - -LOGGING_CONFIG = { - "version": 1, - "disable_existing_loggers": False, - "formatters": { - "romm": { - "()": "logger.formatter.Formatter", - } - }, - "handlers": { - "default": { - "formatter": "romm", - "class": "logging.StreamHandler", - "stream": "ext://sys.stdout", - } - }, - "root": { - "handlers": ["default"], - "level": "INFO", - }, - "loggers": { - "uvicorn": { - "level": "INFO", - "handlers": ["default"], - "propagate": False, - }, - "uvicorn.error": { - "level": "INFO", - "handlers": ["default"], - "propagate": False, - }, - }, -} - - -class CustomLoggingMiddleware(BaseHTTPMiddleware): - async def dispatch(self, request: Request, call_next): - start_time = time.time() - response = await call_next(request) - process_time = time.time() - start_time - - client_addr = request.client.host if request.client else "-" - method = request.method - path = request.url.path - status_code = response.status_code - length = response.headers.get("content-length", "-") - ua_string = request.headers.get("user-agent", "-") - ua = parse_user_agent(ua_string) - - browser = ua.browser.family - os = ua.os.family - - log_msg = ( - f"{client_addr} | " - f"{method} {path} {status_code} | {length} | " - f"{browser} {os} | {process_time:.3f}" - ) - - log.info(log_msg) - return response diff --git a/backend/main.py b/backend/main.py index 49d5254de..3e7eddbc8 100644 --- a/backend/main.py +++ b/backend/main.py @@ -44,7 +44,7 @@ from handler.auth.constants import ALGORITHM from handler.auth.hybrid_auth import HybridAuthBackend from handler.auth.middleware import CustomCSRFMiddleware, SessionMiddleware from handler.socket_handler import socket_handler -from logger.log_middleware import LOGGING_CONFIG, CustomLoggingMiddleware +from logger.formatter import LOGGING_CONFIG from utils import get_version from utils.context import ( ctx_aiohttp_session, @@ -135,8 +135,8 @@ app.mount("/ws", socket_handler.socket_app) add_pagination(app) -# NOTE: This code is only executed when running the application directly, not by Production -# deployments using Gunicorn. +# NOTE: This code is only executed when running the application directly, +# not by deployments using gunicorn. if __name__ == "__main__": # Run migrations alembic.config.main(argv=["upgrade", "head"]) @@ -145,5 +145,4 @@ if __name__ == "__main__": asyncio.run(main()) # Run application - app.add_middleware(CustomLoggingMiddleware) uvicorn.run("main:app", host=DEV_HOST, port=DEV_PORT, reload=True, access_log=False)