/ / Python не виводити помилки виведення - python, керування винятками, jupyter-notebook

Помилка виводу протоколу Python - python, обробка виключення, jupyter-notebook

Я використовую Jupyter ноутбук для розробки деяких Python. Це мій перший удар на реєстрацію помилок, і я маю питання, де немає помилок входять до мого файлу помилки.

Я використовую:

import logging
logger = logging.getLogger("error")
logger.propagate = False
hdlr = logging.FileHandler("error.log")
formatter = logging.Formatter("%(asctime)s %(message)s")
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.DEBUG)

для створення реєстратора.

Потім я використовую блок try / except, який викликається з метою (для тестування), використовуючи стовпець, який не існує в базі даних

try:
some_bad_call_to_the_database("start",group_id)
except Exception as e:
logger.exception("an error I would like to log")
print traceback.format_exc(limit=1)

і виняток називається, як видно з мого виводу в моєму блокноті:

Traceback (most recent call last):
File "<ipython-input-10-ef8532b8e6e0>", line 19, in <module>
some_bad_call_to_the_database("start",group_id)
InternalError: (1054, u"Unknown column "start_times" in "field list"")

Тим не менш, error.log не записується. Будь-які думки будуть оцінені.

Відповіді:

1 для відповіді № 1

спробуйте:

except Exception as e:
excep = logger.info("an error I would like to log")

для отримання додаткової інформації зверніться до документів https://docs.python.org/2/library/logging.html

гарного дня!


1 для відповіді № 2

Ви використовуєте logging.exception, який делегує кореневому реєстратору замість використання logger.exception, які б використовували ваші (і писали на error.log)