diff options
author | Shik Chen <shik@google.com> | 2024-07-01 18:51:33 +0800 |
---|---|---|
committer | LUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2024-07-02 06:24:31 +0000 |
commit | 9bf8236c24839045787fa284471fab950485285c (patch) | |
tree | c0fb602875d822447a460b08e8e193bd42d7f31c /repo_logging.py | |
parent | 87f52f308c48c11a99cefcc308a0994abeb2a7ff (diff) | |
download | git-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.py | 4 |
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, |