如何打印 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
我正在使用 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