如何打印 zmq.REQ 工作人员的回溯和异常?

How can I print the traceback and exception of a zmq.REQ worker?

我正在使用 pexpect.spawn 编写一些可以 运行 并行的脚本。

但是我发现 zmq.REQ 工作人员的回溯和异常不会在我 运行 master.py (zmq.REP) 的终端打印出来.

我知道 sys.stderr 可用于重定向回溯和异常,但我不知道我应该如何在 worker.py 中使用它,以便在 worker.py 中发生异常可以打印出来。

使用 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