import sys
from loguru import logger
from app.settings import settings
def setup_logging() -> None:
logger.remove()
level = "DEBUG" if settings.debug else "INFO"
logger.add(
sys.stdout,
level=level,
colorize=True,
format=(
"{time:YYYY-MM-DD HH:mm:ss} | "
"{level: <8} | "
"{name}:{function}:{line} | "
"{message}"
),
)
try:
logger.add(
"logs/app_{time:YYYY-MM-DD}.log",
level=level,
rotation="1 day",
retention="30 days",
compression="gz",
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} | {message}",
)
except (FileExistsError, OSError):
logger.info("File logging disabled (Docker/read-only fs)")
logger.info("Logging configured | level={}", level)