import logging from environs import Env from fastapi import FastAPI from api.application import router as ApplicationRouter from auth import AuthMiddleware from auth import router as AuthRouter from exceptions import register_exception_handlers from logs import log_handler env = Env() env.read_env() log_filepath = env.str("LOG_FILE", "/data/langlink/logs/langlink.json") logger = logging.getLogger("langlink") logger.setLevel(logging.INFO) handler = log_handler(log_filepath) logger.addHandler(handler) app = FastAPI() app.add_middleware( AuthMiddleware, env=env, login_path="/login", white_list=["/ping"], ) app.include_router(ApplicationRouter) app.include_router(AuthRouter) app.state.logger = logger register_exception_handlers(app)