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.
pull/11325/head
Eli Schwartz 2 years ago
parent e990c5fdbd
commit 7b0a590c1b
No known key found for this signature in database
GPG Key ID: CEB167EFB5722BD6
  1. 8
      mesonbuild/mlog.py

@ -422,7 +422,13 @@ def exception(e: Exception, prefix: T.Optional[AnsiDecorator] = None) -> None:
if prefix: if prefix:
args.append(prefix) args.append(prefix)
args.append(str(e)) 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 # Format a list for logging purposes as a string. It separates
# all but the last item with commas, and the last with 'and'. # all but the last item with commas, and the last with 'and'.

Loading…
Cancel
Save