/ src / analysis_logger.py
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()