File indexing completed on 2026-04-25 08:29:08
0001 import logging
0002
0003
0004
0005
0006
0007
0008 CHATTY_LEVEL_NUM = 5
0009 logging.addLevelName(CHATTY_LEVEL_NUM, "CHATTY")
0010
0011 def chatty(self, message, *args, **kws):
0012
0013 if self.isEnabledFor(CHATTY_LEVEL_NUM):
0014 self._log(CHATTY_LEVEL_NUM, message, args, stacklevel=2, **kws)
0015 logging.Logger.chatty = chatty
0016
0017
0018
0019 class CustomFormatter(logging.Formatter):
0020 grey = "\x1b[38;20m"
0021 yellow = "\x1b[33;20m"
0022 green = "\x1b[32;20m"
0023 blue = "\x1b[36;20m"
0024 red = "\x1b[31;20m"
0025 bold_red = "\x1b[31;1m"
0026 reset = "\x1b[0m"
0027 format = "%(asctime)s [%(levelname)s] - %(message)s"
0028
0029 FORMATS = {
0030 CHATTY_LEVEL_NUM: yellow + format + " (%(filename)s:%(lineno)d) " + reset,
0031 logging.DEBUG: grey + format + " (%(filename)s:%(lineno)d) " + reset,
0032 logging.INFO: green + format + reset,
0033 logging.WARNING: blue + format + " (%(filename)s:%(lineno)d) " + reset,
0034 logging.ERROR: red + format + " (%(filename)s:%(lineno)d) " + reset,
0035 logging.CRITICAL: bold_red + format + " (%(filename)s:%(lineno)d) " + reset
0036 }
0037
0038 def format(self, record):
0039 log_fmt = self.FORMATS.get(record.levelno, self.format)
0040 formatter = logging.Formatter(log_fmt)
0041 return formatter.format(record)
0042
0043
0044 slogger = logging.getLogger( 'sphenixprod' )
0045
0046 if not slogger.hasHandlers():
0047 ch = logging.StreamHandler()
0048 ch.setFormatter(CustomFormatter())
0049 slogger.addHandler(ch)
0050
0051 CHATTY = slogger.chatty
0052 DEBUG = slogger.debug
0053 INFO = slogger.info
0054 WARN = slogger.warning
0055 ERROR = slogger.error
0056 CRITICAL = slogger.critical
0057