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

Reply via email to