merge: combine local dev updates into dev

This commit is contained in:
qzl
2026-02-25 17:05:04 +08:00
15 changed files with 724 additions and 464 deletions
+13 -1
View File
@@ -9,12 +9,17 @@ from starlette.exceptions import HTTPException as StarletteHTTPException
from core.config.settings import config
from core.http.models import HealthResponse
from core.http.response import build_problem_details
from core.logging import configure_logging, get_logger
from core.logging import configure_logging, get_logger, log_service_banner
from v1.router import router as mobile_router
configure_logging(config)
log_service_banner(
service_name=config.runtime.service_name,
environment=config.runtime.environment,
)
app = FastAPI()
app.add_middleware(
CORSMiddleware,
@@ -26,6 +31,13 @@ app.add_middleware(
app.include_router(mobile_router)
logger = get_logger("api.app")
logger.info(
"Web application initialized",
environment=config.runtime.environment,
debug=config.runtime.debug,
log_level=config.runtime.log_level,
)
@app.get("/health", response_model=HealthResponse)
async def health() -> HealthResponse:
-2
View File
@@ -43,8 +43,6 @@ def create_celery_app() -> Celery:
worker_prefetch_multiplier=1,
)
app.autodiscover_tasks(["tasks"])
configure_celery_app(app, settings=config)
return app
+2
View File
@@ -1,6 +1,7 @@
from __future__ import annotations
from core.logging import celery
from core.logging.banner import log_service_banner
from core.logging.config import configure_logging
from core.logging.context import bind_context, clear_context, get_context
from core.logging.logger import get_logger
@@ -12,4 +13,5 @@ __all__ = [
"configure_logging",
"get_context",
"get_logger",
"log_service_banner",
]
+21
View File
@@ -0,0 +1,21 @@
from __future__ import annotations
import structlog
def build_service_banner(service_name: str, environment: str) -> str:
service_upper = service_name.upper()
border = "=" * 50
lines = [
border,
f" {service_upper}",
f" Environment: {environment}",
border,
]
return "\n".join(lines)
def log_service_banner(service_name: str, environment: str) -> None:
logger = structlog.get_logger("banner")
banner = build_service_banner(service_name, environment)
logger.info(banner)
+7
View File
@@ -7,6 +7,7 @@ from typing import cast
from celery import Celery, signals
from core.config.settings import Settings
from core.logging.banner import log_service_banner
from core.logging.config import configure_logging
from core.logging.context import bind_context, clear_context
@@ -22,8 +23,14 @@ class CelerySignalHandlers:
def build_celery_signal_handlers(
settings: Settings | None = None,
) -> CelerySignalHandlers:
active_settings = settings or Settings()
def on_setup_logging(*_args: object, **_kwargs: object) -> None:
configure_logging(settings)
log_service_banner(
service_name=active_settings.runtime.service_name,
environment=active_settings.runtime.environment,
)
def on_after_setup_task_logger(*_args: object, **_kwargs: object) -> None:
configure_logging(settings)