""" Logging utilities for the pump.fun trading bot. """ import logging import sys # Global dict to store loggers _loggers: dict[str, logging.Logger] = {} def get_logger(name: str, level: int = logging.INFO) -> logging.Logger: """Get or create a logger with the given name. Args: name: Logger name, typically __name__ level: Logging level Returns: Configured logger """ global _loggers if name in _loggers: return _loggers[name] logger = logging.getLogger(name) logger.setLevel(level) if not logger.handlers: formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) logger.addHandler(console_handler) _loggers[name] = logger return logger def setup_file_logging( filename: str = "pump_trading.log", level: int = logging.INFO ) -> None: """Set up file logging for all loggers. Args: filename: Log file path level: Logging level for file handler """ root_logger = logging.getLogger() formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) file_handler = logging.FileHandler(filename) file_handler.setLevel(level) file_handler.setFormatter(formatter) root_logger.addHandler(file_handler)