File size: 1,015 Bytes
974e5e3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import sys
import os
from loguru import logger
def setup_logging(log_level: str = "INFO"):
# Create logs directory if it doesn't exist
log_dir = "logs"
os.makedirs(log_dir, exist_ok=True)
# Clear any default logger configurations
logger.remove()
# Console handler: colorized output with a nice format
logger.add(
sys.stdout,
colorize=True,
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
level=log_level,
)
# File handler: logs to file with rotation, retention, and compression for production
logger.add(
os.path.join(log_dir, "devpilot.log"),
rotation="10 MB", # Rotate after 10 MB
retention="10 days", # Keep logs for 10 days
compression="zip", # Compress archived logs
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{line} - {message}",
level=log_level,
) |