From 9bf8236c24839045787fa284471fab950485285c Mon Sep 17 00:00:00 2001 From: Shik Chen Date: Mon, 1 Jul 2024 18:51:33 +0800 Subject: 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 Commit-Queue: Shik Chen Reviewed-by: Mike Frysinger --- repo_logging.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'repo_logging.py') 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): def __init__(self, config): super().__init__(config, "logs") - self.error = self.colorer("error", fg="red") - self.warning = self.colorer("warn", fg="yellow") + self.error = self.nofmt_colorer("error", fg="red") + self.warning = self.nofmt_colorer("warn", fg="yellow") self.levelMap = { "WARNING": self.warning, "ERROR": self.error, -- cgit v1.2.3-54-g00ecf