refactor: Unify logging & remove factory deployment
This commit is contained in:
@@ -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,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user