| 14 | |
| 15 | |
| 16 | class CustomFormatter(logging.Formatter): |
| 17 | |
| 18 | grey = "\x1b[1m" |
| 19 | green = "\x1b[32;20m" |
| 20 | yellow = "\x1b[33;20m" |
| 21 | red = "\x1b[31;20m" |
| 22 | bold_red = "\x1b[31;1m" |
| 23 | reset = "\x1b[0m" |
| 24 | |
| 25 | FORMATS = { |
| 26 | logging.DEBUG: build_format(grey), |
| 27 | logging.INFO: build_format(green), |
| 28 | logging.WARNING: build_format(yellow), |
| 29 | logging.ERROR: build_format(red), |
| 30 | logging.CRITICAL: build_format(bold_red), |
| 31 | } |
| 32 | |
| 33 | def format(self, record): |
| 34 | log_fmt = self.FORMATS.get(record.levelno) |
| 35 | formatter = logging.Formatter(log_fmt) |
| 36 | return formatter.format(record) |
| 37 | |
| 38 | |
| 39 | def init_logger(name: str, log_level=logging.DEBUG) -> Logger: |
no test coverage detected