Search code examples
pythonpython-2.7logginglogentries

Logentries - Python example return UnicodeDecodeError


i'm trying to setup a "logentries" account to log my python development events. But I get the following error even with the most simple test available in the documentation. Any thoughts?

Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi
n32
Type "help", "copyright", "credits" or "license" for more information.
>>> from logentries import LogentriesHandler
>>> import logging
>>> log = logging.getLogger('logentries')
>>> log.setLevel(logging.INFO)
>>> log.addHandler(LogentriesHandler('xxxx-xxxx-xxxx-xxxx-xxxx'))
>>> log.info('teste')
LE: Starting Logentries Asynchronous Socket Appender
>>> Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 810, in __bootstrap_inner
    self.run()
  File "C:\Python27\lib\site-packages\logentries\utils.py", line 96, in run
    multiline = le_helpers.create_unicode(data).replace(
  File "C:\Python27\lib\site-packages\logentries\helpers.py", line 31, in create
_unicode
    return unicode(ch, 'utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe1 in position 59: invalid
continuation byte

Solution

  • Thanks to Nikita's comment I could find the problem.

    Helpers.py lib from logentries are not prepared for latin languages OS, whose timestamp label have special letters as "á".

    Replacing

    unicode(ch,'utf8')
    

    with

    unicode(ch,'utf8','replace')
    

    did the trick.