Forum Programmation.python SMTPHandler et unicode

Posté par .
Étiquettes : aucune
0
30
juin
2010
Bonsoir à tous,

J'ai un petit programme de test qui me permet de logguer par mail des messages d'erreur. Le problème est que ça ne fonctionne pas "par défaut", j'ai une UnicodeEncodeError lors de l'envoi de mail avec des caractères accentués. Je peux contourner le problème en changeant l'encoding par défaut de python (lignes en commentaire) mais ça ne me plaît pas trop, d'après mes lectures c'est juste un pis-aller ... Y a t'il une solution plus propre pour que le SMTPHandler fonctionne correctement ? A noter que le problème n'existe pas pour le RotatingFileHandler, il loggue bien les accents.



import logging,logging.handlers
import sys

#print sys.getdefaultencoding()
#reload(sys)
#sys.setdefaultencoding('utf-8')
#print sys.getdefaultencoding()

fileHandler = logging.handlers.RotatingFileHandler("/tmp/log.log")
smtpHandler = logging.handlers.SMTPHandler(mailhost=("smtp.example.com",25), fromaddr="toto@example.com", toaddrs="toto@example.com", subject=u"msg d'erreur")

LOG = logging.getLogger()
LOG.addHandler(fileHandler)
LOG.addHandler(smtpHandler)


LOG.error(u"sans accent")
LOG.error(u"accentu\u00E9")


Merci pour vos réflexions !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.