from os import getenv import logging import sys def get_logger(name: str): """ Builds the logger. Gets the log level from the environment variable LOG_LEVEL. If the log level is not set, it defaults to INFO. Creates a stream handler and sets the log level. Sets the formatter for the stream handler. Adds the stream handler to the logger. Returns the logger. """ log_level = getenv('LOG_LEVEL', 'INFO').upper() logger = logging.getLogger(name) logger.setLevel(log_level) stream_handler = logging.StreamHandler(sys.stdout) stream_handler.setLevel(log_level) stream_handler.setFormatter( logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) ) logger.addHandler(stream_handler) return logger