You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.1 KiB

import sys
from pathlib import Path
from loguru import logger
from config import settings
def setup_logging():
log_dir = Path(__file__).parent / "logs"
log_dir.mkdir(exist_ok=True)
logger.remove()
log_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
"<level>{message}</level>"
)
logger.add(
sys.stdout,
format=log_format,
level=settings.LOG_LEVEL,
colorize=True,
)
logger.add(
log_dir / "app_{time:YYYY-MM-DD}.log",
format=log_format,
level=settings.LOG_LEVEL,
rotation="00:00",
retention="7 days",
compression="zip",
)
logger.add(
log_dir / "error_{time:YYYY-MM-DD}.log",
format=log_format,
level="ERROR",
rotation="00:00",
retention="30 days",
compression="zip",
)
logger.info(f"Logging setup complete, level: {settings.LOG_LEVEL}")