"""Logging configuration for SPA Telegram Bot.""" import sys from pathlib import Path from loguru import logger LOG_DIR = Path(__file__).resolve().parent.parent / "logs" LOG_DIR.mkdir(exist_ok=True) # В контейнере можно переопределить через env (например LOG_DIR=/dev/null) LOG_DIR = Path(__import__("os").environ.get("LOG_DIR", str(LOG_DIR))) LOG_DIR.mkdir(exist_ok=True) # Remove default handler logger.remove() # Console handler (INFO and above) logger.add( sys.stdout, format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level="INFO", colorize=True, ) # File handler with rotation (DEBUG and above, keep 30 days) logger.add( LOG_DIR / "bot_{time:YYYY-MM-DD}.log", format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level="DEBUG", rotation="1 day", retention="30 days", compression="gz", ) # Error-only file logger.add( LOG_DIR / "errors_{time:YYYY-MM-DD}.log", format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", level="ERROR", rotation="1 day", retention="90 days", compression="gz", )