Spaces:
Sleeping
Sleeping
| import uvicorn | |
| import logging | |
| import os | |
| from logging.handlers import RotatingFileHandler | |
| LOG_DIR = os.path.join(os.path.dirname(__file__), "logs") | |
| os.makedirs(LOG_DIR, exist_ok=True) | |
| # Configure uvicorn to also write its own logs to the logs/ folder | |
| LOG_CONFIG = { | |
| "version": 1, | |
| "disable_existing_loggers": False, | |
| "formatters": { | |
| "default": { | |
| "format": "%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", | |
| "datefmt": "%Y-%m-%d %H:%M:%S", | |
| } | |
| }, | |
| "handlers": { | |
| "console": { | |
| "class": "logging.StreamHandler", | |
| "formatter": "default", | |
| "stream": "ext://sys.stdout", | |
| }, | |
| "file": { | |
| "class": "logging.handlers.RotatingFileHandler", | |
| "formatter": "default", | |
| "filename": os.path.join(LOG_DIR, "app.log"), | |
| "maxBytes": 10 * 1024 * 1024, # 10 MB | |
| "backupCount": 5, | |
| "encoding": "utf-8", | |
| }, | |
| }, | |
| "loggers": { | |
| "uvicorn": {"handlers": ["console", "file"], "level": "INFO", "propagate": False}, | |
| "uvicorn.error": {"handlers": ["console", "file"], "level": "INFO", "propagate": False}, | |
| "uvicorn.access": {"handlers": ["console", "file"], "level": "INFO", "propagate": False}, | |
| }, | |
| } | |
| if __name__ == "__main__": | |
| uvicorn.run( | |
| "app.main:app", | |
| host="0.0.0.0", | |
| port=8000, | |
| reload=True, | |
| log_level="info", | |
| log_config=LOG_CONFIG, | |
| ) | |