"""
Logging configuration for eagle-eye modules.
"""
import logging
import os
from logging.handlers import RotatingFileHandler
def setup_logger():
"""
Sets up logging configuration, including file and console handlers.
The log file is dynamically named based on the module name.
"""
module_name = os.getenv("MODULE_NAME", "default")
logger = logging.getLogger(module_name)
if not logger.hasHandlers():
log_dir = f"/var/log/{module_name}"
os.makedirs(log_dir, exist_ok=True)
log_file_path = f"{log_dir}/{module_name}.log"
log_handler = RotatingFileHandler(log_file_path, maxBytes=40 * 1024 * 1024, backupCount=0)
log_handler.setLevel(logging.INFO)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
log_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
logger.addHandler(log_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.INFO)
return logger