import logging import os from datetime import datetime from logging.handlers import RotatingFileHandler def setup_logger(name="botty"): # Create logs directory if it doesn't exist if not os.path.exists('logs'): os.makedirs('logs') # Configure logger logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) # Create formatters file_formatter = logging.Formatter( '%(asctime)s | %(levelname)s | %(module)s:%(lineno)d | %(message)s' ) console_formatter = logging.Formatter( '%(levelname)s: %(message)s' ) # File handler (rotating, max 5MB per file, keep 5 backup files) file_handler = RotatingFileHandler( f'logs/botty_{datetime.now().strftime("%Y%m%d")}.log', maxBytes=5*1024*1024, backupCount=5 ) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(file_formatter) # Console handler console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) console_handler.setFormatter(console_formatter) # Add handlers to logger logger.addHandler(file_handler) logger.addHandler(console_handler) return logger