Image-Debluring / DeblurGanV2 /logging_utils.py
sayed99's picture
initialized both deblurer
61d360d
import os
import logging
from logging.handlers import RotatingFileHandler
import sys
# Create logs directory if it doesn't exist
logs_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logs')
os.makedirs(logs_dir, exist_ok=True)
# Log file path
log_file_path = os.path.join(logs_dir, 'deblur_app.log')
# Keep track of configured loggers to prevent duplicate setup
_configured_loggers = set()
def setup_logger(name=None):
"""
Setup and return a logger configured to log to both file and console
Args:
name: Logger name (default: root logger)
Returns:
Configured logger instance
"""
global _configured_loggers
# Get or create the logger
logger = logging.getLogger(name)
# Check if this logger has already been configured
logger_id = id(logger)
if logger_id in _configured_loggers or logger.handlers:
return logger
# Add to configured loggers set
_configured_loggers.add(logger_id)
# Set log level
logger.setLevel(logging.INFO)
# Prevent propagation to avoid duplicate logs
logger.propagate = False
# Create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# File handler (with rotation)
file_handler = RotatingFileHandler(
log_file_path,
maxBytes=10*1024*1024, # 10 MB
backupCount=5
)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
# Console handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(formatter)
# Add handlers to logger
logger.addHandler(file_handler)
logger.addHandler(console_handler)
return logger
# Configure root logger only once
if not logging.getLogger().handlers:
setup_logger()