40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
|
|
import logging
|
|
import os
|
|
from pathlib import Path
|
|
|
|
def setup_logger(name: str, log_file: str = "trading_agents.log", level=logging.INFO):
|
|
"""Function to setup a logger; can be called multiple times for different loggers."""
|
|
|
|
# Check if this logger already exists to avoid duplicate handlers
|
|
logger = logging.getLogger(name)
|
|
if logger.handlers:
|
|
return logger
|
|
|
|
logger.setLevel(level)
|
|
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
|
|
# Console Handler (Optional - Commented out to keep CLI clean)
|
|
# ch = logging.StreamHandler()
|
|
# ch.setFormatter(formatter)
|
|
# logger.addHandler(ch)
|
|
|
|
# File Handler
|
|
try:
|
|
# Create logs directory if it doesn't exist?
|
|
# For now, keep in root or specific path.
|
|
# Using current working directory for simplicity as requested.
|
|
file_handler = logging.FileHandler(log_file)
|
|
file_handler.setFormatter(formatter)
|
|
logger.addHandler(file_handler)
|
|
except IOError as e:
|
|
print(f"Error setting up logger file handler: {e}")
|
|
|
|
return logger
|
|
|
|
# Create main system logger
|
|
app_logger = setup_logger("TradingAgents", "agent.log")
|
|
# Create override specific logger
|
|
override_logger = setup_logger("OverrideLogic", "agent.log")
|