analysis_logger.py
1 # Python Imports 2 import sys 3 import logging 4 from tqdm_loggable.tqdm_logging import tqdm_logging 5 6 # Project Imports 7 from src import vars 8 9 10 class CustomFormatter(logging.Formatter): 11 # Set different formats for every logging level 12 time_name_stamp = "[%(asctime)s.%(msecs)03d] [" + vars.G_APP_NAME + "]" 13 FORMATS = { 14 logging.ERROR: time_name_stamp + " ERROR in %(module)s.py %(funcName)s() %(lineno)d - %(msg)s", 15 logging.WARNING: time_name_stamp + " WARNING - %(msg)s", 16 logging.CRITICAL: time_name_stamp + " CRITICAL in %(module)s.py %(funcName)s() %(lineno)d - %(msg)s", 17 logging.INFO: time_name_stamp + " %(msg)s", 18 logging.DEBUG: time_name_stamp + " %(funcName)s() %(msg)s", 19 'DEFAULT': time_name_stamp + " %(msg)s", 20 } 21 22 def format(self, record): 23 log_fmt = self.FORMATS.get(record.levelno, self.FORMATS['DEFAULT']) 24 formatter = logging.Formatter(log_fmt, '%d-%m-%Y %H:%M:%S') 25 return formatter.format(record) 26 27 28 def innit_logger(): 29 global G_LOGGER 30 31 """ Init Logging """ 32 G_LOGGER = logging.getLogger(vars.G_APP_NAME) 33 handler = logging.StreamHandler(sys.stdout) 34 handler.setFormatter(CustomFormatter()) 35 G_LOGGER.addHandler(handler) 36 37 tqdm_logging.set_level(logging.INFO) 38 39 # Set loglevel from config 40 G_LOGGER.setLevel(vars.G_LOG_LEVEL) 41 handler.setLevel(vars.G_LOG_LEVEL) 42 43 G_LOGGER.info('Started') 44 45 return G_LOGGER 46 47 48 G_LOGGER = innit_logger()