refactor: Unify logging & remove factory deployment

This commit is contained in:
Chris Coutinho
2025-10-18 01:15:06 +02:00
parent 9c909b6e42
commit 5e829fc7e7
2 changed files with 22 additions and 25 deletions
+4 -23
View File
@@ -14,7 +14,7 @@ from starlette.routing import Mount
from nextcloud_mcp_server.auth import NextcloudTokenVerifier, load_or_register_client from nextcloud_mcp_server.auth import NextcloudTokenVerifier, load_or_register_client
from nextcloud_mcp_server.client import NextcloudClient from nextcloud_mcp_server.client import NextcloudClient
from nextcloud_mcp_server.config import setup_logging from nextcloud_mcp_server.config import setup_logging, LOGGING_CONFIG
from nextcloud_mcp_server.context import get_client as get_nextcloud_client from nextcloud_mcp_server.context import get_client as get_nextcloud_client
from nextcloud_mcp_server.server import ( from nextcloud_mcp_server.server import (
configure_calendar_tools, configure_calendar_tools,
@@ -352,9 +352,7 @@ def get_app(transport: str = "sse", enabled_apps: list[str] | None = None):
# Asynchronously get the OAuth configuration # Asynchronously get the OAuth configuration
import asyncio import asyncio
nextcloud_host, token_verifier, auth_settings = asyncio.run( _, token_verifier, auth_settings = asyncio.run(setup_oauth_config())
setup_oauth_config()
)
mcp = FastMCP( mcp = FastMCP(
"Nextcloud MCP", "Nextcloud MCP",
lifespan=app_lifespan_oauth, lifespan=app_lifespan_oauth,
@@ -422,10 +420,6 @@ def get_app(transport: str = "sse", enabled_apps: list[str] | None = None):
@click.option( @click.option(
"--port", "-p", type=int, default=8000, show_default=True, help="Server port" "--port", "-p", type=int, default=8000, show_default=True, help="Server port"
) )
@click.option(
"--workers", "-w", type=int, default=None, help="Number of worker processes"
)
@click.option("--reload", "-r", is_flag=True, help="Enable auto-reload")
@click.option( @click.option(
"--log-level", "--log-level",
"-l", "-l",
@@ -483,8 +477,6 @@ def get_app(transport: str = "sse", enabled_apps: list[str] | None = None):
def run( def run(
host: str, host: str,
port: int, port: int,
workers: int,
reload: bool,
log_level: str, log_level: str,
transport: str, transport: str,
enable_app: tuple[str, ...], enable_app: tuple[str, ...],
@@ -591,21 +583,10 @@ def run(
enabled_apps = list(enable_app) if enable_app else None enabled_apps = list(enable_app) if enable_app else None
if reload or workers: app = get_app(transport=transport, enabled_apps=enabled_apps)
app = "nextcloud_mcp_server.app:get_app"
factory = True
else:
app = get_app(transport=transport, enabled_apps=enabled_apps)
factory = False
uvicorn.run( uvicorn.run(
app=app, app=app, host=host, port=port, log_level=log_level, log_config=LOGGING_CONFIG
factory=factory,
host=host,
port=port,
reload=reload,
workers=workers,
log_level=log_level,
) )
+18 -2
View File
@@ -2,17 +2,18 @@ import logging.config
LOGGING_CONFIG = { LOGGING_CONFIG = {
"version": 1, "version": 1,
"disable_existing_loggers": False,
"handlers": { "handlers": {
"default": { "default": {
"class": "logging.StreamHandler", "class": "logging.StreamHandler",
"formatter": "http", "formatter": "http",
} },
}, },
"formatters": { "formatters": {
"http": { "http": {
"format": "%(levelname)s [%(asctime)s] %(name)s - %(message)s", "format": "%(levelname)s [%(asctime)s] %(name)s - %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S", "datefmt": "%Y-%m-%d %H:%M:%S",
} },
}, },
"loggers": { "loggers": {
"": { "": {
@@ -29,6 +30,21 @@ LOGGING_CONFIG = {
"level": "INFO", "level": "INFO",
"propagate": False, # Prevent propagation to root logger "propagate": False, # Prevent propagation to root logger
}, },
"uvicorn": {
"handlers": ["default"],
"level": "INFO",
"propagate": False,
},
"uvicorn.access": {
"handlers": ["default"],
"level": "INFO",
"propagate": False,
},
"uvicorn.error": {
"handlers": ["default"],
"level": "INFO",
"propagate": False,
},
}, },
} }