aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2023-01-22 16:40:14 -0500
committerNirbheek Chauhan <nirbheek@centricular.com>2023-02-19 02:55:57 +0530
commit3b5a89b2d85f44f6b93f932ab912cde5a6b4b3b3 (patch)
tree77fcc81b6785e52647d69a246b08ee0129f62e15
parent55fe626befab30ee2713fe2a514abebfeb76c230 (diff)
downloadmeson-3b5a89b2d85f44f6b93f932ab912cde5a6b4b3b3.zip
meson-3b5a89b2d85f44f6b93f932ab912cde5a6b4b3b3.tar.gz
meson-3b5a89b2d85f44f6b93f932ab912cde5a6b4b3b3.tar.bz2
mlog: do not squelch console output for errors
We have functionality to squelch logging, and we use this for situations where we run a fake interpreter and then emit output. e.g. `introspect`. It's reasonable to avoid logging your bog-standard noisy `mlog.log()` here, but unfortunately, we also avoided logging the output of `mlog.exception()` followed by `sys.exit(2)`, because that went through mlog! :P Special-case this to keep on printing, even if mlog.disable() was used -- in such a case, we really do want to emit log output no matter what. Users need this info to ensure they have any clue why Meson returned a non-zero exit code.
-rw-r--r--mesonbuild/mlog.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py
index 2b310ec..e9c4017 100644
--- a/mesonbuild/mlog.py
+++ b/mesonbuild/mlog.py
@@ -384,7 +384,13 @@ def exception(e: Exception, prefix: T.Optional[AnsiDecorator] = None) -> None:
if prefix:
args.append(prefix)
args.append(str(e))
- log(*args)
+
+ restore = log_disable_stdout
+ if restore:
+ enable()
+ log(*args, is_error=True)
+ if restore:
+ disable()
# Format a list for logging purposes as a string. It separates
# all but the last item with commas, and the last with 'and'.