Console formatter for log messages.
| 68 | |
| 69 | |
| 70 | class ColorfulConsoleFormatter(logging.Formatter): |
| 71 | """Console formatter for log messages.""" |
| 72 | |
| 73 | grey = "\x1b[38;21m" |
| 74 | blue = "\x1b[38;5;39m" |
| 75 | yellow = "\x1b[38;5;226m" |
| 76 | red = "\x1b[38;5;196m" |
| 77 | bold_red = "\x1b[31;1m" |
| 78 | reset = "\x1b[0m" |
| 79 | |
| 80 | def __init__(self, fmt): |
| 81 | """Construct with defaults.""" |
| 82 | super().__init__() |
| 83 | self.fmt = fmt |
| 84 | self.formats = { |
| 85 | logging.DEBUG: self.grey + self.fmt + self.reset, |
| 86 | logging.INFO: self.blue + self.fmt + self.reset, |
| 87 | logging.WARNING: self.yellow + self.fmt + self.reset, |
| 88 | logging.ERROR: self.red + self.fmt + self.reset, |
| 89 | logging.CRITICAL: self.bold_red + self.fmt + self.reset, |
| 90 | } |
| 91 | |
| 92 | def format(self, record): |
| 93 | """Format the record.""" |
| 94 | log_fmt = self.formats.get(record.levelno) |
| 95 | formatter = logging.Formatter(log_fmt) |
| 96 | return formatter.format(record) |
| 97 | |
| 98 | |
| 99 | def configure_icloudpy_logging(): |