|
1 | 1 | """Main application to be deployed in for example uvicorn""" |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | from typing import Final |
4 | 5 |
|
| 6 | +from common_library.json_serialization import json_dumps |
5 | 7 | from fastapi import FastAPI |
6 | | -from servicelib.logging_utils import setup_loggers |
| 8 | +from servicelib.fastapi.logging_lifespan import setup_logging_shutdown_event |
7 | 9 | from simcore_service_datcore_adapter.core.application import create_app |
8 | 10 | from simcore_service_datcore_adapter.core.settings import ApplicationSettings |
9 | 11 |
|
10 | | -NOISY_LOGGERS: Final[tuple[str, ...]] = ( |
| 12 | +_logger = logging.getLogger(__name__) |
| 13 | + |
| 14 | +_NOISY_LOGGERS: Final[tuple[str, ...]] = ( |
11 | 15 | "aiocache", |
12 | 16 | "botocore", |
13 | 17 | "hpack", |
14 | 18 | ) |
15 | 19 |
|
16 | | -_the_settings = ApplicationSettings.create_from_envs() |
17 | 20 |
|
18 | | -setup_loggers( |
19 | | - log_format_local_dev_enabled=_the_settings.DATCORE_ADAPTER_LOG_FORMAT_LOCAL_DEV_ENABLED, |
20 | | - logger_filter_mapping=_the_settings.DATCORE_ADAPTER_LOG_FILTER_MAPPING, |
21 | | - tracing_settings=_the_settings.DATCORE_ADAPTER_TRACING, |
22 | | - log_base_level=_the_settings.log_level, |
23 | | - noisy_loggers=NOISY_LOGGERS, |
24 | | -) |
| 21 | +def app_factory() -> FastAPI: |
| 22 | + app_settings = ApplicationSettings.create_from_envs() |
| 23 | + logging_shutdown_event = setup_logging_shutdown_event( |
| 24 | + log_format_local_dev_enabled=app_settings.DATCORE_ADAPTER_LOG_FORMAT_LOCAL_DEV_ENABLED, |
| 25 | + logger_filter_mapping=app_settings.DATCORE_ADAPTER_LOG_FILTER_MAPPING, |
| 26 | + tracing_settings=app_settings.DATCORE_ADAPTER_TRACING, |
| 27 | + log_base_level=app_settings.log_level, |
| 28 | + noisy_loggers=_NOISY_LOGGERS, |
| 29 | + ) |
25 | 30 |
|
26 | | -# SINGLETON FastAPI app |
27 | | -the_app: FastAPI = create_app(_the_settings) |
| 31 | + _logger.info( |
| 32 | + "Application settings: %s", |
| 33 | + json_dumps(app_settings, indent=2, sort_keys=True), |
| 34 | + ) |
| 35 | + app = create_app(settings=app_settings) |
| 36 | + app.add_event_handler("shutdown", logging_shutdown_event) |
| 37 | + return app |
0 commit comments