summaryrefslogtreecommitdiffstats
path: root/repo_logging.py
diff options
context:
space:
mode:
authorAravind Vasudevan <aravindvasudev@google.com>2023-09-14 22:54:04 +0000
committerLUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-09-18 20:06:30 +0000
commitb8fd19215f59f7f8dbe69528aefca700a2190ecd (patch)
tree6f6ac455d16b0e58fd6cf16475d11ba7407883ca /repo_logging.py
parent7a1f1f70f0587795e2b6979adf7eac389037de57 (diff)
downloadgit-repo-b8fd19215f59f7f8dbe69528aefca700a2190ecd.tar.gz
main: Use repo logger
Bug: b/292704435 Change-Id: Ica02e4c00994a2f64083bb36e8f4ee8aa45d76bd Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/386454 Reviewed-by: Jason Chang <jasonnc@google.com> Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com> Tested-by: Aravind Vasudevan <aravindvasudev@google.com>
Diffstat (limited to 'repo_logging.py')
-rw-r--r--repo_logging.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/repo_logging.py b/repo_logging.py
index 7d050555..58625351 100644
--- a/repo_logging.py
+++ b/repo_logging.py
@@ -15,12 +15,13 @@
15"""Logic for printing user-friendly logs in repo.""" 15"""Logic for printing user-friendly logs in repo."""
16 16
17import logging 17import logging
18from typing import List
19 18
20from color import Coloring 19from color import Coloring
20from error import RepoExitError
21 21
22 22
23SEPARATOR = "=" * 80 23SEPARATOR = "=" * 80
24MAX_PRINT_ERRORS = 5
24 25
25 26
26class _ConfigMock: 27class _ConfigMock:
@@ -70,8 +71,22 @@ class RepoLogger(logging.Logger):
70 handler.setFormatter(_LogColoringFormatter(config)) 71 handler.setFormatter(_LogColoringFormatter(config))
71 self.addHandler(handler) 72 self.addHandler(handler)
72 73
73 def log_aggregated_errors(self, errors: List[Exception]): 74 def log_aggregated_errors(self, err: RepoExitError):
74 """Print all aggregated logs.""" 75 """Print all aggregated logs."""
75 super().error(SEPARATOR) 76 self.error(SEPARATOR)
76 super().error("Repo command failed due to following errors:") 77
77 super().error("\n".join(str(e) for e in errors)) 78 if not err.aggregate_errors:
79 self.error("Repo command failed: %s", type(err).__name__)
80 return
81
82 self.error(
83 "Repo command failed due to the following `%s` errors:",
84 type(err).__name__,
85 )
86 self.error(
87 "\n".join(str(e) for e in err.aggregate_errors[:MAX_PRINT_ERRORS])
88 )
89
90 diff = len(err.aggregate_errors) - MAX_PRINT_ERRORS
91 if diff:
92 self.error("+%d additional errors...", diff)