2017-08-31 1 views
0

J'ai une application Python2 qui se connecte via la bibliothèque structlog, et en aval les logs sont capturés à l'aide d'une syntaxe key/value. Cependant, l'extraction ne fonctionne pas lorsque des chaînes Unicode sont impliquées - l'u est ajouté aux chaînes Unicode, ce qui brise l'analyseur.Python Structlog - cachez-vous '' à partir des chaînes Unicode

Est-il possible de configurer le KeyValueRenderer pour exclure le ''?

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

Résultat:

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

désiré:

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

Je sais qu'il ya des questions pour modifier le comportement de l'impression globale de Python pour les chaînes Unicode - mais je suis à la recherche de changer le comportement dans l'approche de structlog pour les imprimer.

+1

Comment voulez-vous que les chaînes avec des caractères non-ASCII apparaissent? –

+0

Copie possible de [Supprimer l'u'prefix indiquant unicode 'dans les chaînes python] (https://stackoverflow.com/questions/761361/suppress-the-uprefix-indicating-unicode-in-python-strings) – Mangohero1

+1

Il semble probable ce faisant, cela ne fera que casser l'analyseur différemment, car il reconstruira la mauvaise chaîne. Vous voudrez peut-être envisager d'améliorer l'analyseur. – user2357112

Répondre