使用logging打印pprint的输出
我想使用pprint的输出显示一个复杂的数据结构,但我想输出它使用日志logging模块,而不是标准输出。
ds = [{'hello': 'there'}] logging.debug( pprint.pprint(ds) ) # outputs as STDOUT
使用pprint.pformat
获取一个string,然后将其发送到您的日志框架。
ds = [{'hello': 'there'}] logging.debug(pprint.pformat(ds))
上面的解决scheme并没有完全削减我的,因为我也使用格式化程序来logging时添加名称和级别名称。 它看起来有点不整齐:
__main__ : DEBUG : ['aaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbb', 'cccccccccccccccccccc', 'dddddddddddddddddddd'] __main__ : DEBUG : Some other logging text
可能有一个更优雅的解决scheme,但是这个:
for line in pprint.pformat(ds).split('\n'): logging.debug(line)
产生一些更好的东西:
__main__ : DEBUG : ['aaaaaaaaaaaaaaaaaaaa', __main__ : DEBUG : 'bbbbbbbbbbbbbbbbbbbb', __main__ : DEBUG : 'cccccccccccccccccccc', __main__ : DEBUG : 'dddddddddddddddddddd'] __main__ : DEBUG : Some other logging text