Python Structlog - 隐藏你的''来自unicode字符串

时间:2017-08-31 21:39:18

标签: python unicode

我有一个Python2应用程序,它通过structlog库记录,下游日志被捕获,使用键/值语法提取。但是,当涉及到unicode字符串时,提取不起作用 - u被预先添加到unicode字符串中,从而破坏了解析器。

是否可以配置KeyValueRenderer以排除你的'?

import structlog
structlog.configure(processors=[structlog.processors.KeyValueRenderer()])
l = structlog.get_logger()
l.error('I am ASCII')
l.error(u'I am Unicode')

结果:

event='I am ASCII'
event=u'I am Unicode'

所需:

event='I am ASCII'
event='I am Unicode'

我知道有些问题需要改变Python对Unicode字符串的全局打印行为 - 但我只是想改变structlog打印它们的方法中的行为。

1 个答案:

答案 0 :(得分:0)

这是structlog.processors.UnicodeEncoder的用途。它需要unicode字符串并将它们编码为字节字符串。

使用Python 3后,您希望structlog.processors.UnicodeDecoder阻止b前缀。