import logging import os from logging.handlers import RotatingFileHandler class LoggerConfig: """A class to configure logging for the Flask application.""" LOG_DIR = "logs" # Define the log directory @staticmethod def init_logger(app): """Initializes separate log files for INFO, ERROR, and WARNING levels.""" # Ensure the logs directory exists if not os.path.exists(LoggerConfig.LOG_DIR): os.makedirs(LoggerConfig.LOG_DIR) # Separate loggers for different levels LoggerConfig._setup_logger(app.logger, "info.log", logging.INFO) LoggerConfig._setup_logger(app.logger, "error.log", logging.ERROR) LoggerConfig._setup_logger(app.logger, "warning.log", logging.WARNING) app.logger.info("Logger has been initialized for Flask application.") @staticmethod def _setup_logger(logger, filename, level): """Helper method to configure loggers for specific levels.""" log_file_path = os.path.join(LoggerConfig.LOG_DIR, filename) log_handler = RotatingFileHandler(log_file_path, maxBytes=100000, backupCount=3) log_handler.setLevel(level) log_formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") log_handler.setFormatter(log_formatter) logger.addHandler(log_handler)