У мене є компонент реєстрації в моїй програмі. Налаштування форматирування є простою:
sh.setFormatter(logging.Formatter("%(asctime)s - %(message)s"))
Я помічаю, що в моїй програмі є проблеми. Після певного моменту формат повертається до конфігурації за замовчуванням (тобто ігнорується форматування, яке я надавав). При ближчій інспекції здається, що я збиваю його, надіславши повідомлення, яке викидає UnicodeDecodeError при рендерингу в рядку. Але я не можу виправити.
Я загорнув виклик журналу:
try:
my_logger.info(msg)
except UnicodeDecodeError:
pass
Яка «ловить» виняток, але логер все ще залишається вбитим.
Будь-які думки?
Відповіді:
1 для відповіді № 1Будь-яка ідея, який вхід викликає UnicodeDecodeError
? Широке друкування змінних допоможе! Якщо ви хочете перейти після отримання цієї помилки, ви повинні завершити дзвінки на форматтер в a try..except
блок
try:
# log stuff
except UnicodeDecodeError:
# handle the exception and move on
Було б корисно переглянути ще кілька кодів та деяких ваших вхідних даних, щоб дати вам більш чітку відповідь.
1 для відповіді № 2
Подивіться на це: http://wiki.python.org/moin/UnicodeDecodeError. Ви, напевно, маєте рядок, який не можна розшифрувати.
0 для відповіді № 3
Користувач мого продукту мав цю проблему. Перейти в журнал /в цьому.py і додайте деякі оператори друку для друку запису.диктувати. Якщо ви бачите Unicode в asctime, що може стати вашою проблемою.