import logging import os from datetime import datetime def setup_logger(name='hexaw_logger', log_dir='logs'): """ Set up a logger with file and console output. :param name: Name of the logger :param log_dir: Directory to store log files :return: Configured logger """ # Create logs directory if it doesn't exist os.makedirs(log_dir, exist_ok=True) # Generate a log filename with timestamp timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") log_file = os.path.join(log_dir, f'{name}_{timestamp}.log') # Create logger logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) # Create file handler file_handler = logging.FileHandler(log_file, encoding='utf-8') file_handler.setLevel(logging.DEBUG) # Create console handler console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) # Create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) # Add handlers to logger logger.addHandler(file_handler) logger.addHandler(console_handler) return logger # Create a global logger instance logger = setup_logger()