| 53 | |
| 54 | |
| 55 | class _VerbosityWrapper: |
| 56 | def __init__( |
| 57 | self, |
| 58 | logger: logging.Logger, |
| 59 | verbosity_level: t.Optional[int] = None, |
| 60 | ) -> None: |
| 61 | self.logger = logger |
| 62 | self.level = logger.level |
| 63 | self.setup(verbosity_level=verbosity_level) |
| 64 | self.verbosity = min(verbosity_level or _LOG_VERBOSITY, 3) |
| 65 | self.size = _LOG_LINE_SIZE_BY_VERBOSITY[self.verbosity] |
| 66 | |
| 67 | def setup(self, verbosity_level: t.Optional[int] = None) -> None: |
| 68 | if verbosity_level is None: |
| 69 | return |
| 70 | self.verbosity = verbosity_level |
| 71 | self.size = _LOG_LINE_SIZE_BY_VERBOSITY[self.verbosity] |
| 72 | |
| 73 | def _trim(self, msg) -> str: |
| 74 | msg = str(msg) |
| 75 | if self.size == -1: |
| 76 | return msg |
| 77 | |
| 78 | if len(msg) < self.size: |
| 79 | return msg |
| 80 | |
| 81 | return msg[: self.size] + "..." |
| 82 | |
| 83 | def info(self, msg, *args, **kwargs): |
| 84 | self.logger.info(self._trim(msg), *args, **kwargs) |
| 85 | |
| 86 | def debug(self, msg, *args, **kwargs): |
| 87 | self.logger.debug(self._trim(msg), *args, **kwargs) |
| 88 | |
| 89 | def warning(self, msg, *args, **kwargs): |
| 90 | self.logger.warning(self._trim(msg), *args, **kwargs) |
| 91 | |
| 92 | def error(self, msg, *args, **kwargs): |
| 93 | self.logger.error(msg, *args, **kwargs) |
| 94 | |
| 95 | def isEnabledFor(self, level: int): |
| 96 | return self.logger.isEnabledFor(level=level) |
| 97 | |
| 98 | |
| 99 | def _parse_log_level_from_env(default: int) -> int: |