import logging import sys from pathlib import Path from datetime import datetime # Create logs directory logs_dir = Path("logs") logs_dir.mkdir(exist_ok=True) # Configure logging log_file = logs_dir / f"debug_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log" # Create logger logger = logging.getLogger('TwitterChecker') logger.setLevel(logging.DEBUG) # File handler - detailed logs file_handler = logging.FileHandler(log_file, encoding='utf-8') file_handler.setLevel(logging.DEBUG) file_formatter = logging.Formatter( '%(asctime)s | %(levelname)8s | %(filename)s:%(lineno)d | %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) file_handler.setFormatter(file_formatter) # Console handler - important messages only console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) console_formatter = logging.Formatter( '\033[1;35m[DEBUG]\033[0m %(message)s' ) console_handler.setFormatter(console_formatter) # Add handlers logger.addHandler(file_handler) logger.addHandler(console_handler) def debug(msg): """Log debug message""" logger.debug(msg) def info(msg): """Log info message""" logger.info(msg) def warning(msg): """Log warning message""" logger.warning(msg) def error(msg): """Log error message""" logger.error(msg) def exception(msg): """Log exception with traceback""" logger.exception(msg) # Print initial message info(f"Debug logging initialized. Log file: {log_file}")