import logging import sys from app.core._config import LOG_LEVEL, LOG_FILEPATH LOG_LEVELS = { 'DEBUG': logging.DEBUG, 'INFO': logging.INFO, 'WARNING': logging.WARNING, 'ERROR': logging.ERROR } LOG_LEVEL = LOG_LEVELS[LOG_LEVEL] logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) handler2 = logging.StreamHandler(sys.stdout) handler2.setLevel(LOG_LEVEL) handler2.setFormatter( logging.Formatter('%(asctime)s | %(levelname)s | %(message)s') ) logger.addHandler(handler2) handler3 = logging.FileHandler(LOG_FILEPATH) handler3.setLevel(logging.DEBUG) handler3.setFormatter( logging.Formatter('%(asctime)s | %(levelname)s | %(message)s') ) logger.addHandler(handler3) def make_log(issuer, message, *args, level='INFO', **kwargs): assert level.upper() in LOG_LEVELS.keys(), f"Unknown log level" _log = getattr(logger, level.lower()) log_buffer = f"[{issuer if not (issuer is None) else 'System'}] {message}" if args: log_buffer += f" | {args}" if kwargs: log_buffer += f" | {kwargs}" _log(log_buffer)