import logging import sys import os def setup_logger(name='morphguard', level=logging.INFO): """ Setup structured logging for the application. """ logger = logging.getLogger(name) logger.setLevel(level) # Check if handlers exist to avoid duplicates if not logger.handlers: # Console Handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(level) console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler.setFormatter(console_formatter) logger.addHandler(console_handler) # File Handler (Optional, only if logs dir exists or created) log_dir = 'logs' if os.path.exists(log_dir): file_handler = logging.FileHandler(os.path.join(log_dir, 'app.log')) file_handler.setLevel(level) file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler.setFormatter(file_formatter) logger.addHandler(file_handler) return logger # Create global logger instance logger = setup_logger()