Falcao Zane Vijay
deploy #12
09c9920
# utils/logger.py
import logging
import os
from datetime import datetime
def setup_logger(log_dir="logs", log_level=logging.INFO, enable_file_logging=True):
"""
Sets up a logger that writes to console and optionally to a timestamped log file.
"""
handlers = [logging.StreamHandler()] # Always log to console
if enable_file_logging:
try:
os.makedirs(log_dir, exist_ok=True)
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
log_file = os.path.join(log_dir, f"log_{timestamp}.log")
handlers.append(logging.FileHandler(log_file))
print(f"File logging enabled: {log_file}")
except PermissionError:
print("File logging disabled due to permission issues - logging to console only")
except Exception as e:
print(f"File logging disabled due to error: {e}")
logging.basicConfig(
level=log_level,
format="%(asctime)s [%(levelname)s] - %(message)s",
handlers=handlers,
force=True # This ensures reconfiguration if already configured
)
logging.info("Logger initialized.")