# -*- coding: utf-8 -*- from pathlib import Path from functools import lru_cache import logging import uvicorn from fastapi import FastAPI, Depends from loguru import logger from app.api.routers import targets, equipment, space from app.core.logger import InterceptHandler from app.core.config import LoggerSettings logger_settings = LoggerSettings() logging.getLogger().handlers = [InterceptHandler()] logger.add(Path(logger_settings.logs_dir, 'env_fastapi.log'), level='INFO', rotation='00:00', encoding='utf-8') app = FastAPI() app.include_router(targets.router, prefix='/target') app.include_router(space.router, prefix='/room') app.include_router(equipment.router, prefix='/equip') @lru_cache() def get_settings(): return LoggerSettings() @app.get("/info") async def info(settings: LoggerSettings = Depends(get_settings)): return { 'logs_dir': settings.logs_dir } if __name__ == '__main__': uvicorn.run(app, host='0.0.0.0', port=8000)