| Server IP : 185.11.201.71 / Your IP : 192.168.7.18 Web Server : Apache/2.4.29 (Ubuntu) System : Linux tech-virtual-machine 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 User : tech ( 1000) PHP Version : 7.4.28 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /comunica/app_ojos_old/app/ |
Upload File : |
'''
main.py
Description: Main entry point for the FastAPI application.
Last Updated: 2024-08-07
Version: 1.0.0
Copyright (c) 2024 Tech-Impulse, Gerard Lahuerta
License: MIT License (see LICENSE for more details)
'''
#################################################################################################################################
from fastapi import FastAPI, Request
from fastapi.responses import RedirectResponse
from logging.handlers import RotatingFileHandler
import logging
import uvicorn
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from routes import items
from config import PROJECT_NAME, API_VERSION, HOST, PORT
#################################################################################################################################
# Configuración básica del logging
logging.basicConfig(
level=logging.INFO, # Nivel de logging
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", # Formato del log
handlers=[
RotatingFileHandler("app/log/app.log", maxBytes=1000000, backupCount=5) # Archivo donde se guardarán los logs
]
)
logger = logging.getLogger(__name__)
app = FastAPI(
title=PROJECT_NAME,
version=API_VERSION
)
app.include_router(items.router)
#################################################################################################################################
@app.get("/", include_in_schema=False)
async def root(request: Request):
client_host = request.client.host
logger.info(f"Example endpoint accessed from IP: {client_host}")
return RedirectResponse(url="/docs")
@app.get("/check")
async def read_example(request: Request):
client_host = request.client.host
logger.info(f"Check set up API from IP: {client_host}")
return {"message": "Colorimetry Analisys WebApp"}
#################################################################################################################################
if __name__ == "__main__":
logger.info("Starting API")
uvicorn.run(app, host=HOST, port=PORT, log_level="info")