How to set custom output handlers for argparse in Python? -


i have configured logger print both onto terminal stdout , file can have archive of logging messages can refer to.

that accomplished adding filehandler logging object. easy peasy.

what want accomplish make argparse log same file along logs stdout when encounters parsing errors. far prints stdout. looked in argparse documentation can't find setting different output stream or pipe argparse.

is possible do? how?

looking @ argparse.py source code there doesn't seem way configure behaviour.

my suggestion(s) be:

  • file bug report patch :)

override/patch:

  • print_* method(s)
  • error method.

the print_* method(s) seem take optional file argument defaults _sys.stdout.

update: alternatively whereby redirect sys.stdout temporarily while 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   redirct_stdout_stderr(logstream):     args = parser.parse_args() 

Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -