A collection of structlog processors for prettier output: a code syntax highlighter, JSON and XML prettifiers, a multiline string printer, and a numeric value rounder.
First of all, sorry, grandma, but structlog-pretty
requires Python 3.
You can just install the library with pip:
pip install structlog-pretty
or, if you want faster prettifying processors:
pip install structlog-pretty[fast]
The downside of the faster processors is that they will build C extensions and
they need libxml
to be installed.
Add structlog-pretty processors to your structlog configuration
import structlog
import structlog_pretty
structlog.configure(
# ...
processors=[
structlog.stdlib.add_log_level,
structlog_pretty.NumericRounder(digits=2, only_fields=['timing'])
structlog.processors.JSONRenderer(),
],
)
A nice example of a processor pipeline for the prettiest logs could be
processors=[
# ...
structlog_pretty.JSONPrettifier(['request', 'response']),
structlog_pretty.XMLPrettifier(['soap_response']),
structlog_pretty.PathPrettifier(),
structlog_pretty.SyntaxHighlighter({'request': 'json', 'response': 'json', 'soap_response': 'xml'}),
structlog_pretty.MultilinePrinter(['request', 'response', 'soap_response']),
# ...
],