Allow user to control output of verbose messages (#52948)

to stdout (default) or stderr
This commit is contained in:
Brian Coca 2019-03-05 16:08:15 -05:00 committed by GitHub
parent 1160e506e9
commit 7a0b4a5117
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 2 deletions

View file

@ -0,0 +1,2 @@
minor_changes:
- allow user to force verbose messages to stderr

View file

@ -1776,4 +1776,15 @@ STRING_CONVERSION_ACTION:
- section: defaults
key: string_conversion_action
type: string
VERBOSE_TO_STDERR:
version_added: '2.8'
description:
- Force 'verbose' option to use stderr instead of stdout
default: False
env:
- name: ANSIBLE_VERBOSE_TO_STDERR
ini:
- section: defaults
key: verbose_to_stderr
type: bool
...

View file

@ -201,11 +201,13 @@ class Display(with_metaclass(Singleton, object)):
self.display("%6d %0.5f [%s]: %s" % (os.getpid(), time.time(), host, msg), color=C.COLOR_DEBUG)
def verbose(self, msg, host=None, caplevel=2):
to_stderr = C.VERBOSE_TO_STDERR
if self.verbosity > caplevel:
if host is None:
self.display(msg, color=C.COLOR_VERBOSE)
self.display(msg, color=C.COLOR_VERBOSE, stderr=to_stderr)
else:
self.display("<%s> %s" % (host, msg), color=C.COLOR_VERBOSE)
self.display("<%s> %s" % (host, msg), color=C.COLOR_VERBOSE, stderr=to_stderr)
def deprecated(self, msg, version=None, removed=False):
''' used to print out a deprecation message.'''