Je veux utiliser la sortie de pprint pour afficher une structure de données complexe, mais je voudrais la sortir en utilisant le module de journalisation plutôt que stdout.
ds = [{'hello': 'there'}]
logging.debug( pprint.pprint(ds) ) # outputs as STDOUT
pprint( {}, stream )
, mais j'ai trouvé cela plutôt gênant. J'aurais pensé que quelque chose comme çaspprint
aurait pu être plus agréable quepformat
(comme dansc
).pprint.pformat()
était sur cette page.Réponses:
Utilisez
pprint.pformat
pour obtenir une chaîne, puis envoyez-la à votre infrastructure de journalisation.la source
AttributeError: 'function' object has no attribute 'pformat'
une idée pourquoi?from pprint import pprint,pformat
alorslogging.debug((pformat(stuff))
La solution ci-dessus ne m'a pas tout à fait permis car j'utilise également un formateur pour ajouter un nom et un nom de niveau lors de la journalisation. Cela a l'air un peu désordonné:
Il existe peut-être une solution plus élégante, mais celle-ci:
produit quelque chose d'un peu plus agréable:
la source
\n
caractère supplémentaire dans le pformat. Au moins de cette façon, le bloc est ensemble.