Use logging print the output of pprint
Solution 1:
Use pprint.pformat
to get a string, and then send it to your logging framework.
from pprint import pformat
ds = [{'hello': 'there'}]
logging.debug(pformat(ds))
Solution 2:
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