Pretty print logging in Python
From the Python logging documentation, we can send an arbitrary object into a log message call.
import pprint class PrettyLog(): def __init__(self, obj): self.obj = obj def __repr__(self): return pprint.pformat(self.obj)
Then, in the code, we can use it with logging.
import logging # ... logging.debug(PrettyLog(obj))
The string isn't created until it is needed, so if the logging level is not high enough, the only method call is the creation of the PrettyLog object.