93 lines
2.4 KiB
Python
93 lines
2.4 KiB
Python
"""
|
|
Uvicorn logging configuration for the Aniworld application.
|
|
|
|
This configuration ensures that uvicorn logs are properly formatted and
|
|
written to both console and file.
|
|
"""
|
|
from pathlib import Path
|
|
|
|
# Get the logs directory
|
|
LOGS_DIR = Path(__file__).parent.parent.parent.parent / "logs"
|
|
LOGS_DIR.mkdir(parents=True, exist_ok=True)
|
|
LOG_FILE = LOGS_DIR / "fastapi_app.log"
|
|
|
|
LOGGING_CONFIG = {
|
|
"version": 1,
|
|
"disable_existing_loggers": False,
|
|
"formatters": {
|
|
"default": {
|
|
"()": "uvicorn.logging.DefaultFormatter",
|
|
"fmt": "%(levelprefix)s %(message)s",
|
|
"use_colors": None,
|
|
},
|
|
"access": {
|
|
"()": "uvicorn.logging.AccessFormatter",
|
|
"fmt": (
|
|
'%(levelprefix)s %(client_addr)s - '
|
|
'"%(request_line)s" %(status_code)s'
|
|
),
|
|
},
|
|
"detailed": {
|
|
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
"datefmt": "%Y-%m-%d %H:%M:%S",
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "INFO",
|
|
"formatter": "default",
|
|
"stream": "ext://sys.stdout",
|
|
},
|
|
"file": {
|
|
"class": "logging.FileHandler",
|
|
"level": "INFO",
|
|
"formatter": "detailed",
|
|
"filename": str(LOG_FILE),
|
|
"mode": "a",
|
|
"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,
|
|
},
|
|
"watchfiles.main": {
|
|
"handlers": ["console"],
|
|
"level": "WARNING",
|
|
"propagate": False,
|
|
},
|
|
"aniworld": {
|
|
"handlers": ["console", "file"],
|
|
"level": "INFO",
|
|
"propagate": False,
|
|
},
|
|
},
|
|
"root": {
|
|
"handlers": ["console", "file"],
|
|
"level": "INFO",
|
|
},
|
|
}
|
|
|
|
|
|
def get_uvicorn_log_config() -> dict:
|
|
"""
|
|
Get the uvicorn logging configuration dictionary.
|
|
|
|
Returns:
|
|
Dictionary containing logging configuration
|
|
"""
|
|
return LOGGING_CONFIG
|