Use logging print the output of pprint Use logging print the output of pprint python python

Use logging print the output of pprint


Use pprint.pformat to get a string, and then send it to your logging framework.

from pprint import pformatds = [{'hello': 'there'}]logging.debug(pformat(ds))


The solution above didn't quite cut it for me because I'm also using a formatter to add name and levelname when logging. It looks a little untidy:

__main__    : DEBUG   : ['aaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbb','cccccccccccccccccccc','dddddddddddddddddddd']__main__    : DEBUG   : Some other logging text

There may be a more elegant solution, but this:

for line in pprint.pformat(ds).split('\n'):    logging.debug(line)

produces something a little nicer:

__main__    : DEBUG   : ['aaaaaaaaaaaaaaaaaaaa',__main__    : DEBUG   :  'bbbbbbbbbbbbbbbbbbbb',__main__    : DEBUG   :  'cccccccccccccccccccc',__main__    : DEBUG   :  'dddddddddddddddddddd']__main__    : DEBUG   : Some other logging text