I have configured logger
to print both onto terminal stdout
and to a file so I can have an archive of logging messages that I can refer to.
Tha
Looking at the argparse.py source code there doesn't seem to be a way to configure this behaviour.
My suggestion(s) would be:
Override/patch:
print_*
method(s)error
method.The print_*
method(s) seem to take an optional file
argument which defaults to _sys.stdout
.
Update: Alternatively you could do something like this whereby you redirect sys.stdout
temporarily while you parse arguments:
from contextlib import contextmanager
@contextmanager
def redirect_stdout_stderr(stream):
old_stdout = sys.stdout
old_stderr = sys.stderr
sys.stdout = stream
sys.stderr = stream
try:
yield
finally:
sys.stdout = old_stdout
sys.stderr = old_stderr
with redirct_stdout_stderr(logstream):
args = parser.parse_args()