Как я могу распечатать трассировку и исключение работника zmq.REQ? - PullRequest
0 голосов
/ 14 декабря 2018

Я использую pexpect.spawn для написания сценария, который может работать параллельно.

Но я обнаружил, что трассировка и исключение рабочего zmq.REQ не будут распечатываться в терминале, где я запускаю master.py (zmq.REP).

Я знаюsys.stderr можно использовать для перенаправления трассировки и исключения, но я понятия не имею, как мне использовать это в worker.py, чтобы исключения, случающиеся в worker.py, могли быть распечатаны.

1 Ответ

0 голосов
/ 14 декабря 2018

Используйте logging.exception и войдите в файл.

Пример:

import logging

logging.basicConfig(filename='example.log') 


def fail():
    return 10/0

try:
    fail()
except Exception as err:
    loggin.exception(err)

Вывод (example.log):

ERROR:root:integer division or modulo by zero
Traceback (most recent call last):
  File "<ipython-input-4-d63f4b56d991>", line 2, in <module>
    fail()
  File "<ipython-input-3-edce7c179301>", line 2, in fail
    return 10/0
ZeroDivisionError: integer division or modulo by zero
...