diff options
Diffstat (limited to 'repo_logging.py')
-rw-r--r-- | repo_logging.py | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/repo_logging.py b/repo_logging.py index b748df4f..e94af7df 100644 --- a/repo_logging.py +++ b/repo_logging.py | |||
@@ -15,7 +15,7 @@ | |||
15 | """Logic for printing user-friendly logs in repo.""" | 15 | """Logic for printing user-friendly logs in repo.""" |
16 | 16 | ||
17 | import logging | 17 | import logging |
18 | import multiprocessing | 18 | from typing import Any, List |
19 | 19 | ||
20 | from color import Coloring | 20 | from color import Coloring |
21 | 21 | ||
@@ -45,31 +45,25 @@ class ConfigMock: | |||
45 | class RepoLogger(logging.Logger): | 45 | class RepoLogger(logging.Logger): |
46 | """Repo Logging Module.""" | 46 | """Repo Logging Module.""" |
47 | 47 | ||
48 | # Aggregates error-level logs. This is used to generate an error summary | 48 | def __init__(self, name: str, config=None, **kwargs): |
49 | # section at the end of a command execution. | ||
50 | errors = multiprocessing.Manager().list() | ||
51 | |||
52 | def __init__(self, name, config=None, **kwargs): | ||
53 | super().__init__(name, **kwargs) | 49 | super().__init__(name, **kwargs) |
54 | self.config = config if config else ConfigMock() | 50 | self.config = config if config else ConfigMock() |
55 | self.colorer = LogColoring(self.config) | 51 | self.colorer = LogColoring(self.config) |
56 | 52 | ||
57 | def error(self, msg, *args, **kwargs): | 53 | def error(self, msg: Any, *args, **kwargs): |
58 | """Print and aggregate error-level logs.""" | 54 | """Print and aggregate error-level logs.""" |
59 | colored_error = self.colorer.error(msg, *args) | 55 | colored_error = self.colorer.error(str(msg), *args) |
60 | RepoLogger.errors.append(colored_error) | ||
61 | |||
62 | super().error(colored_error, **kwargs) | 56 | super().error(colored_error, **kwargs) |
63 | 57 | ||
64 | def warning(self, msg, *args, **kwargs): | 58 | def warning(self, msg: Any, *args, **kwargs): |
65 | """Print warning-level logs with coloring.""" | 59 | """Print warning-level logs with coloring.""" |
66 | colored_warning = self.colorer.warning(msg, *args) | 60 | colored_warning = self.colorer.warning(str(msg), *args) |
67 | super().warning(colored_warning, **kwargs) | 61 | super().warning(colored_warning, **kwargs) |
68 | 62 | ||
69 | def log_aggregated_errors(self): | 63 | def log_aggregated_errors(self, errors: List[Exception]): |
70 | """Print all aggregated logs.""" | 64 | """Print all aggregated logs.""" |
71 | super().error(self.colorer.error(SEPARATOR)) | 65 | super().error(self.colorer.error(SEPARATOR)) |
72 | super().error( | 66 | super().error( |
73 | self.colorer.error("Repo command failed due to following errors:") | 67 | self.colorer.error("Repo command failed due to following errors:") |
74 | ) | 68 | ) |
75 | super().error("\n".join(RepoLogger.errors)) | 69 | super().error("\n".join(map(str, errors))) |