summaryrefslogtreecommitdiffstats
path: root/repo_logging.py
diff options
context:
space:
mode:
authorShik Chen <shik@google.com>2024-07-01 18:51:33 +0800
committerLUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2024-07-02 06:24:31 +0000
commit9bf8236c24839045787fa284471fab950485285c (patch)
treec0fb602875d822447a460b08e8e193bd42d7f31c /repo_logging.py
parent87f52f308c48c11a99cefcc308a0994abeb2a7ff (diff)
downloadgit-repo-9bf8236c24839045787fa284471fab950485285c.tar.gz
logging: Fix log formatting with colored output
The log message is already formatted before being passed to the colorer. To avoid the exception "TypeError: not enough arguments for format string", we should use the `nofmt_colorer` instead. This bug occurs only when the formatted string still contains '%' character. The following snippet can reproduce the bug: ``` from repo_logging import RepoLogger RepoLogger(__name__).error("%s", "100% failed") ``` Change-Id: I4e3977b3d21aec4e0deb95fc1c6dd1e59272d695 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/432017 Tested-by: Shik Chen <shik@google.com> Commit-Queue: Shik Chen <shik@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'repo_logging.py')
-rw-r--r--repo_logging.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/repo_logging.py b/repo_logging.py
index 20a53429..639382a2 100644
--- a/repo_logging.py
+++ b/repo_logging.py
@@ -39,8 +39,8 @@ class _LogColoring(Coloring):
39 39
40 def __init__(self, config): 40 def __init__(self, config):
41 super().__init__(config, "logs") 41 super().__init__(config, "logs")
42 self.error = self.colorer("error", fg="red") 42 self.error = self.nofmt_colorer("error", fg="red")
43 self.warning = self.colorer("warn", fg="yellow") 43 self.warning = self.nofmt_colorer("warn", fg="yellow")
44 self.levelMap = { 44 self.levelMap = {
45 "WARNING": self.warning, 45 "WARNING": self.warning,
46 "ERROR": self.error, 46 "ERROR": self.error,