Source code for seaquest.utils.loggus

import logging


[docs] def init_logger(name: str, file_path: str = './seaquest.logs', level = logging.DEBUG) -> logging.Logger: """create an object that handles the logging Parameters ---------- name: str Name of the logging object file_path: str Path of the file that stores the logs (will be created if not exists) level: default debug Logging level Returns ------- logger: obj Object that handles the logging through its inherent methods """ levels = { "debug": logging.DEBUG, "info": logging.INFO, "critical": logging.CRITICAL } logger = logging.getLogger(name) logger.setLevel(levels.get(level, logging.DEBUG)) _init_logging_config(logger=logger, file_path=file_path) return logger
[docs] def _init_logging_config(logger: logging.Logger, file_path: str): """set the configuration of a logging object Set up the logging format, create the console and file handlers Parameters ---------- logger: Logging object file_path: str Path of the file that stores the logs (will be created if not exists) """ console_format = logging.Formatter('[%(name)s][%(levelname)s] - %(message)s') file_format = logging.Formatter('[%(asctime)s][%(name)s][%(levelname)s] - %(message)s') console_handler = logging.StreamHandler(); console_handler.setLevel(logging.INFO); console_handler.setFormatter(console_format) file_handler = logging.FileHandler(file_path, mode="a"); file_handler.setLevel(logging.DEBUG); file_handler.setFormatter(file_format) logger.addHandler(console_handler); logger.addHandler(file_handler)