On 2009-07-01 10:02, Frank Aune wrote:
Hello,
---- snip ----
import logging
logging.basicConfig(level=logging.DEBUG)
x='\xfe\x9f\xce\xc3\xa1\x00\xff\x01'
x
'\xfe\x9f\xce\xc3\xa1\x00\xff\x01'
print x
���á�
logging.info(x)
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 773, in emit
stream.write(fs % msg.encode("UTF-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfe in position 10:
ordinal not in range(128)
logging.info(x, extra={'encoding':'utf-8'})
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 773, in emit
stream.write(fs % msg.encode("UTF-8"))
UnicodeDecodeError: 'utf8' codec can't decode byte 0xfe in position 10:
unexpected code byte
---- snip ----
Is there any way to log the above value of x "properly" using the python
logging module? By properly I mean logging the value displayed when entering
just x in the python shell and pressing enter.
logging.info(repr(x))
Or, to be more descriptive in your logging message:
logging.info("Got a binary value: %r", x)
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
--
http://mail.python.org/mailman/listinfo/python-list