| 128 | |
| 129 | |
| 130 | class _ColorfulFormatter(logging.Formatter): |
| 131 | def __init__(self, *args, **kwargs): |
| 132 | self._root_name = kwargs.pop("root_name") + "." |
| 133 | self._abbrev_name = kwargs.pop("abbrev_name", "") |
| 134 | if len(self._abbrev_name): |
| 135 | self._abbrev_name = self._abbrev_name + "." |
| 136 | super(_ColorfulFormatter, self).__init__(*args, **kwargs) |
| 137 | |
| 138 | def formatMessage(self, record): |
| 139 | record.name = record.name.replace(self._root_name, self._abbrev_name) |
| 140 | log = super(_ColorfulFormatter, self).formatMessage(record) |
| 141 | if record.levelno == logging.WARNING: |
| 142 | prefix = colored("WARNING", "red", attrs=["blink"]) |
| 143 | elif record.levelno == logging.ERROR or record.levelno == logging.CRITICAL: |
| 144 | prefix = colored("ERROR", "red", attrs=["blink", "underline"]) |
| 145 | else: |
| 146 | return log |
| 147 | return prefix + " " + log |