| 436 | |
| 437 | def setup_logger(): |
| 438 | class CustomFormatter(logging.Formatter): |
| 439 | |
| 440 | grey = "\x1b[38;20m" |
| 441 | yellow = "\x1b[33;20m" |
| 442 | red = "\x1b[31;20m" |
| 443 | bold_red = "\x1b[31;1m" |
| 444 | reset = "\x1b[0m" |
| 445 | format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)" |
| 446 | |
| 447 | FORMATS = { |
| 448 | logging.DEBUG: grey + format + reset, |
| 449 | logging.INFO: grey + format + reset, |
| 450 | logging.WARNING: yellow + format + reset, |
| 451 | logging.ERROR: red + format + reset, |
| 452 | logging.CRITICAL: bold_red + format + reset |
| 453 | } |
| 454 | |
| 455 | def format(self, record): |
| 456 | log_fmt = self.FORMATS.get(record.levelno) |
| 457 | formatter = logging.Formatter(log_fmt) |
| 458 | return formatter.format(record) |
| 459 | |
| 460 | logging.getLogger("httpx").setLevel(logging.WARNING) |
| 461 | logging.getLogger("multilspy").setLevel(logging.FATAL) |