[Python-Dev] Logging, Unicode and sockets

Vinay Sajip vinay_sajip at yahoo.co.uk
Thu Oct 8 08:11:23 CEST 2009

Thanks to 


I've noticed that the socket-based logging handlers - SocketHandler,
DatagramHandler and SysLogHandler - aren't Unicode-aware and can break in the
presence of Unicode messages. I'd like to fix this by giving these handlers an
optional (encoding=None) parameter in their __init__, and then using this to
encode on output. If no encoding is specified, is it best to use
locale.getpreferredencoding(), sys.getdefaultencoding(),
sys.getfilesystemencoding(), 'utf-8' or something else? On my system:

>>> sys.getdefaultencoding()
>>> sys.getfilesystemencoding()
>>> locale.getpreferredencoding()

which suggests to me that the locale.getpreferredencoding() should be the
default. However, as I'm not a Unicode maven, any suggestions would be welcome.


Vinay Sajip 

More information about the Python-Dev mailing list