Files
pumpfun-bonkfun-bot_github/src/utils/logger.py
T
2025-03-06 21:52:43 +00:00

65 lines
1.5 KiB
Python

"""
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)