簡體   English   中英

Python Structlog-從Unicode字符串隱藏u''

[英]Python Structlog - hide u'' from unicode strings

我有一個Python2應用程序,該應用程序通過structlog庫進行日志記錄,並使用鍵/值語法提取提取的下游日志。 但是,當涉及到unicode字符串時,提取將不起作用-u被前綴為unicode字符串,從而破壞了解析器。

是否可以將KeyValueRenderer配置為排除u''?

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的打印方法中更改行為。

這就是structlog.processors.UnicodeEncoder的用途。 它采用unicode字符串並將其編碼為字節字符串。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM