2015-12-07 5 views
1

Я пытаюсь настроить учетную запись «logentries» для регистрации событий разработки python. Но я получаю следующую ошибку даже с самым простым тестом, доступным в документации. Есть предположения?Logentries - пример примера Python UnicodeDecodeError

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 
+0

Кажется, что ch не содержит допустимую строку байтов utf-8. Какое значение находится в ch в момент исключения? По крайней мере, как ch получает это значение? // Вы можете попытаться использовать третий параметр функции, т. Е. Unicode (ch, 'utf-8', 'replace'), но это заменит все недопустимые байты на «?». Значение по умолчанию - «строгое», поэтому оно вызывает исключение. –

ответ

1

Благодаря комментарию Никиты я мог найти проблему.

Helpers.py lib из logentries не подготовлен для языков латинского языка OS, метка метки которых имеет специальные буквы как «á».

Замена

unicode(ch,'utf8') 

с

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

сделал трюк.