import logging
import sys

class CustomLogger:
    
    @staticmethod
    def get_logger(log_file='app.log'):
        # Create logger
        logger = logging.getLogger('logger')
        logger.setLevel(logging.DEBUG)

        # Check if handlers already exist
        if not logger.handlers:
            # Create file handler
            fh = logging.FileHandler(log_file)
            fh.setLevel(logging.DEBUG)

            # Create console handler
            ch = logging.StreamHandler(sys.stdout)
            ch.setLevel(logging.DEBUG)

            # Create formatter and add it to the handlers
            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
            fh.setFormatter(formatter)
            ch.setFormatter(formatter)

            # Add the handlers to the logger
            logger.addHandler(fh)
            logger.addHandler(ch)

            # Disable propagation to root logger
            logger.propagate = False

        return logger