Source code for geogenie.utils.logger

import logging
from pathlib import Path


[docs] def setup_logger(log_file, log_level=logging.INFO): """Function to set up a logger for logging info, warnings, errors, and debug prints. Args: log_file (str): Filename for log file. log_level (int): Log level to use. Should be either logging.INFO, logging.WARNING, logging.ERROR, or logging.DEBUG. These levels are converted to integers when called. Defaults to logging.INFO. """ logger = logging.getLogger() # Root logger logger.setLevel(log_level) # Clear existing handlers logger.handlers = [] Path(log_file).parents[0].mkdir(parents=True, exist_ok=True) # Create handlers file_handler = logging.FileHandler(log_file) stream_handler = logging.StreamHandler() # Create formatters and add it to handlers formatter = logging.Formatter( "%(asctime)s - %(levelname)s - %(name)s - %(message)s", ) file_handler.setFormatter(formatter) stream_handler.setFormatter(formatter) # Add handlers to the logger logger.addHandler(file_handler) logger.addHandler(stream_handler)